How convince computer teacher
retard
re at tard.com.invalid
Mon Dec 13 17:30:21 PST 2010
Mon, 13 Dec 2010 16:45:09 -0500, Austin Hastings wrote:
> On 12/9/2010 11:27 AM, Ddev wrote:
>> hi community,
>> How convince my teacher to go in D ?
>> After talk with my teacher, i do not think D is good because after 10
>> years is not become the big one. she is very skeptical about D. If i
>> could convince my teacher it will be great maybe i will teach to his
>> students :)
>
> Please don't.
[snip]
> Bottom line: you'd be wasting your time and your teacher's time. If
> you're still in school, you shouldn't be looking at D at all. You should
> be learning some of the functional languages to stretch your brain, or
> learning some of the popular procedural languages to pad your resume.
(To you who wonder whether he is a troll since he disagrees with you --
As far as I can tell, the indentity is real and unique. It just so
happens that not everyone wants to advocate D blindly)
I agree with you, you have great points there. In my school they used to
have different computer science programs for theoretical stuff and
"vocational" engineering studies. The latter mostly used commercial
Java/.NET/C++ toolchain to do the stuff. The theoretical program used
easily available languages (Scheme, C, Assembly, Pascal, Java, Haskell,
Coq). The focus __wasn't__ on languages. The main goals were:
1) basic programming: how to program a computer, how to use abstractions,
how to program in the small using procedures, classes, and objects. how
to use build tools, IDEs, editors, command line (Scheme | Pascal | Java)
2) data structures and algorithms: time and space complexity, graphs,
trees, lists, arrays, dynamic programming, maximum flow, divide and
conquer, parallel programming, and so on. (Pascal like pseudo language
was used, the idea was to provide a pure language with small amount of
features and hidden costs)
3) low level programming: how the CPU works, how the memory system works,
how binaries are constructed (Assembly)
4) programming languages: declarative, functional, stack, concurrent,
logic, imperative, OOP, scripting (Haskell, Java, Perl, C, ... __oldest
possible languages of that paradigm__)
5) practical programming with libraries: audio programming, graphics
programming, AI, network programming, ... (mostly C/C++/Java)
6) functional languages and theorem proving (Haskell, Coq, ...)
7) software development practices: how to program/manage in large projects
(version control, testing, project management, entrepreneurship, computer
systems) (mostly Java/PHP/C++ in project works)
8) operating systems, networks, cryptography, compilers, mathematics: I
don't think these were demonstrated with any languages.
I fail to see where D fits in.
1) You would have to use a subset of D for basic programming. Providing
too much information is harmful. Currently even SafeD is too big for this
task. And the specification of SafeD isn't available anywhere. The lack
of a good 64-bit compiler is also a great problem. It's intellectual
dishonesty to claim that D is ready for this task. It could be! But it
isn't now and not in the near future.
2) The idea was to avoid language dependencies. You had to explicitly
write all algorithms and data structures, not use built-in ones. The
pseudo language was really simple, similar to Pascal, but with some
useful extensions. Many algorithmics textbooks also use these kind of
languages. It made it really easy to study several of these books during
the courses. If I had used D, it would be harder to read 40+ years worth
of algorithm & data structure books.
3) I think the pure assembler is much useful than D's inline assembler
for this stuff. We also learned how object file formats work (sections
etc.) and how you can control the resulting binaries with special
features. D doesn't really help here, does it? How is it better than a
portable, fully tested production ready 100% free/open/portable assembler.
4) This was mostly a list of language history courses. Very interesting.
We did not prove how D is much better than everything else. We studied
tens of languages. The focus wasn't on practical language skills. We only
learned how features like objects and expections and functional language
thunks etc. are implemented (not in a single language, but in each one of
them, also the bad implementations). How features can be combined (also
the bad choices). How many different paradigms there are. What the world
looked like in 1970. Really, why is D better than any of these languages?
How would you built the material around D?
5) Where are the libraries? Where is the good documentation? One example:
http://www.processing.org/ - does D really have something as good? http://
lwjgl.org/ - does D2 have an up-to-date library similar to this? Need
more examples? http://www.springsource.org/ http://www.hibernate.org/
Where are the application servers, the web server plugins? Competitive
XML parsers? AI libraries? IDE integration? The sad truth is, it will
take years to surpass these existing ones in quality and their feature
set.
6) So... you would really use D to teach purely functional programming
and theorem proving? Seen this? http://www.amazon.com/Purely-Functional-
Structures-Chris-Okasaki/dp/0521663504 Familiar with this stuff? http://
adam.chlipala.net/cpdt/html/toc.html Good luck!
7) I can only imagine you mention unit testing and contracts here on some
lecture. What about test driven development, continuous integration
etc. ? How does D explain XP, Scrum, OpenUP, or Waterfall processes? How
does it work with UML? Any commercial quality tools with two-directional
graph<->source transforms. I don't think so! How does D help with design
patterns and sw architectures? Modules, yes. You need to have more
content than that.
Overall, the importance of a single language is miniscule compared to the
amount of information you deal with while studying. The only place where
it matters is when you need to use existing code base to boost your own
stuff to another level (point 5 above). Even then the existing code
weighs more than the language. I find this worrying here yet again
annoying. Probably no other language community cares so much about
publicity. What kind of religion is this? Ein Volk, Ein Reich, Ein
Sprache ?!
More information about the Digitalmars-d
mailing list