" if you build a tool any idiot can use then rest assured every idiot will use one"
True, but not making something because idiots would misuse it isn't a good road to go down either.
"For programmers who really love to know things all the way down these tools are at best boring"
Do you mean boring in the sense that they just work and once you understand them they do exactly what you want, or boring as in you don't care it exists and you'd rather write it yourself, boilerplate included?
For me something that helps speed up a 20 minute job into a 20 second job is pretty cool, speed increase is one of the fundamental advantages of using computers.
"There's nothing worse than going to upper management and saying I got stuck because VisualStudio won't let me do X."
I haven't been hit by that, though I can imagine it leaves a mark.
"This wasn't meant as flamebait."
Roger, remark retracted ^_^
But now I'm curious about ya, When I only knew c++ I would sit and smugly think about how what the java people were doing wasn't real programming because they weren't managing their own memory, they were letting some program do that work. I now consider this a completely silly opinion.
I think control/productivity tradeoffs like garbage collectors are a much harder decision than, say, using a code generator and tweaking the output, as you the programmer have a lot more control over the generated code than you do a VM. What say you?
"True, but not making something because idiots would misuse it isn't a good road to go down either."
Erm... I am not sure about that one. Idiots cause a lot of harm.
The speed increase you get when using a wizard that makes code you don't understand you pay back with time and headaches when you have to fix the code you didn't write that no longer runs against the current runtime you are using.
As for Java and C++, they both make writing programs hard. The edge Java has is that it makes writing the bugs much harder.
agreed. I mean boring in the sense that I don't care how my car works.
control/productivity tradeoffs like GC are indeed a tougher decision. For a real-time trading system I would think a JVM might be a disaster, though Erlang/OTP also uses GC so it largely depends on the app and where the GC enters into it. Code generation is interesting. Statically typed languages like Java, enable IDEs that can generate a lot of the boilerplate, through annotations, etc.. but there is also the issue of control/productivity and the economics of programming teams that enters into it. I haven't looked closely but I think GWT is a good example of where folks can leverage their Java assets by generating javascript, for which rich toolsets seems to be lacking.
For what it's worth, having been raised on CLOS and Lisp on a Symbolics, C++ was a step backward and I considered working with it for 3 years a net loss. As I understand it C++ was an attempt to codify what folks were already doing in C with macros. As some famous programmer whose name I forget said, "Java took us about half way back to Lisp".
True, but not making something because idiots would misuse it isn't a good road to go down either.
"For programmers who really love to know things all the way down these tools are at best boring"
Do you mean boring in the sense that they just work and once you understand them they do exactly what you want, or boring as in you don't care it exists and you'd rather write it yourself, boilerplate included?
For me something that helps speed up a 20 minute job into a 20 second job is pretty cool, speed increase is one of the fundamental advantages of using computers.
"There's nothing worse than going to upper management and saying I got stuck because VisualStudio won't let me do X."
I haven't been hit by that, though I can imagine it leaves a mark.
"This wasn't meant as flamebait."
Roger, remark retracted ^_^
But now I'm curious about ya, When I only knew c++ I would sit and smugly think about how what the java people were doing wasn't real programming because they weren't managing their own memory, they were letting some program do that work. I now consider this a completely silly opinion.
I think control/productivity tradeoffs like garbage collectors are a much harder decision than, say, using a code generator and tweaking the output, as you the programmer have a lot more control over the generated code than you do a VM. What say you?