Comment Re:Project Lambda (Score 1) 204
Because editors that perform code-refactoring are hard pressed to keep up with the syntax of the week. When you have 1M people coding towards a common base platform, then you can quickly build off each other's successes (both open-source and commercially). If EVERYBODY is going their own direction, you get what we've had for the past 50 years in CIS.. Stagnation, redoing the same old algorithms and libraries over and over again.. How many times must I re-learn a CRUD dialog? stdin, curses, X, windows 3.0, Mac, HTML + tables. HTML + CSS, HTML + Javascript + Ajax, jQuery.xxx. Flash. AWT, SWING, TK, applets, blackberry-dialogs, android-dialogs, silverlight, GWT. JSP/JSF/taglets/webworks/spring-MVC/stripes/seam. Objective-C dialogs? I'm sick of it I tell you. And being an old foggie, I've missed out on like 10 rails-style builders. I feel like I'm only ever able to write hello world's level of complexity. Until we can actually start building instead of rebuilding (with the vast majority of human resources), AI is perpetually going to be 100 years away.
I know some people will prefer a php, ruby, C++ (I rule out OS-targetted languages - namely those who's vast wealth of libraries and development support are specific to a given platform - like Objective-C and .NET), but I've felt the most productive with large / advanced algorithms in Java. 100,000 lines of code in java is FAR more error proof than C++, and I would venture to say ruby/php as well (given that they are so loose in syntax you can't validate / refactor them safely). And yes, I know that 40,000 lines of ruby is equivalent to 100,000 lines of java - but lack of safe refactoring is still an issue. I also rule out the lack of modularity of common PHP packages. Perl/Python/Java/C++ allow safe compartmentalization. Perl/Java (and I assume Python) very nicely allow safe module loading (e.g. if I don't have a module, I can gracefully take alternate action) - I can do so safely in multi-threaded environments (less so with Perl/Python). I can package and deploy the code centrally or in a private network at zero extra cost/technical-risk (sshd + /etc/password + apache == secure java maven-module repository).
If I need to create a project for someone, and I don't want to have to re-invent the wheel on almost any algorithm. If I want it to farm out to 50 developers, but I don't want to have to invent a project-management beuracracy.. If I need the project to scale to 500 machines - but I don't want to have to invent a network fabric. If I want to maximize high-CPU counts (e.g. 24 per machine) on complex image/video-processing/batch-processing (and I may or may not want to risk C++ linkage). If I want intricate timing, timeouts, locking.. And more importantly, I want to delegate out to other developers of questionable skill level - and have THEM properly handle threading, locking, timeouts, etc.
Then today, it's a no brainier for me to recommend java. Yes individual languages excel at some aspects of the above (PHP,Ruby,C++), but none do all sufficiently - at least not without very careful coordination with all the developers.
But once it gets to the UI - all best are off, sadly.
Flame away..
I know some people will prefer a php, ruby, C++ (I rule out OS-targetted languages - namely those who's vast wealth of libraries and development support are specific to a given platform - like Objective-C and
If I need to create a project for someone, and I don't want to have to re-invent the wheel on almost any algorithm. If I want it to farm out to 50 developers, but I don't want to have to invent a project-management beuracracy.. If I need the project to scale to 500 machines - but I don't want to have to invent a network fabric. If I want to maximize high-CPU counts (e.g. 24 per machine) on complex image/video-processing/batch-processing (and I may or may not want to risk C++ linkage). If I want intricate timing, timeouts, locking.. And more importantly, I want to delegate out to other developers of questionable skill level - and have THEM properly handle threading, locking, timeouts, etc.
Then today, it's a no brainier for me to recommend java. Yes individual languages excel at some aspects of the above (PHP,Ruby,C++), but none do all sufficiently - at least not without very careful coordination with all the developers.
But once it gets to the UI - all best are off, sadly.
Flame away..