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 ?!