The Joel on Software Discussion Group (CLOSED)

A place to discuss Joel on Software. Now closed.

This community works best when people use their real names. Please register for a free account.

Other Groups:
Joel on Software
Business of Software
Design of Software (CLOSED)
.NET Questions (CLOSED)
TechInterview.org
CityDesk
FogBugz
Fog Creek Copilot


The Old Forum


Your hosts:
Albert D. Kallal
Li-Fan Chen
Stephen Jones

Language Wars; so how long are we stuck with .NET/J2EE?

I liked the language wars article and you are right about pretty much everything in there (I spit out a big duuuuuh towards the end).

And you are right about the non-mainstream languages.  But to the individual developer (the developer who likes to learn and have fun with his work); working with J2EE would make any grown man cry on a hobby or one-man project (at least if you aren't used to a lot of j2ee).  There is something loveable about lisp/ruby/python.  But these won't see the light of day in an enterprise shop.

My question; when will something else emerge.  I work with J2EE and it seems like we are just starting on major projects, so there lifespan could last 5-6-10 years.

(I worked on a large SAIC project recently that just started, so that code will hang around for a while)
Bot Berlin Send private email
Friday, September 01, 2006
 
 
Well, you are stuck with it forever so long as you continue along with "enterprise development." Perhaps if you learned how to do something interesting you could implement your ideas in a cooler framework.




Not meant to offend, I got tired of enterprise life and learned about audio software, something I actually like, and now work in that field.
_
Friday, September 01, 2006
 
 
I need to find a itch that somebody needs scratched; like you mentioned there is probably a lot of development work needed in audio or video processing.

Us database/web monkeys are stuck in a whole.  I like it sometimes though.
Bot Berlin Send private email
Friday, September 01, 2006
 
 
I wrote a hobby project in "J2EE".  It was pretty fast for me to develop.  all I used was tomcat and JSPs.  I think people just make life too complicated.  I wrote my own SQL, so no OR mapper, I had a very simple persistence/caching engine I had used in another project, and I wrote the html/jsp stuff by hand.  Sure it was a little messy, and I'm sure there might even be more efficient ways, but it wasn't complicated, it was well documented, and I actually busted it out pretty fast.
Vince Send private email
Friday, September 01, 2006
 
 
The driver will be the decline of Windows and more movement to mobile devices/web.

Personally, I've surveyed the field, and I think that Python could be the next big thing. There's a lot of big guys backing it.
Tim Almond Send private email
Friday, September 01, 2006
 
 
Vince; sure for people like you and probably myself.  Actually, I wouldnt mind a spring project.
Bot Berlin Send private email
Friday, September 01, 2006
 
 
Although an improvement over other containers, Spring is pretty heavy compared to LAMP or simple JSP's.  Lots of XML files to edit.

Java is not that bad for churning out web applications, provided your tools are good and you don't go overboard on the architecture.  There are many tools like AppFuse or IDE's that will create your filesystem, web deployment descriptors, build.xml, etc.
NPR
Friday, September 01, 2006
 
 
In the context of this discussion, I think the next big trend is actually some sort of true "visual" or model programming.

Think code generators.  We're at a point now where we can press a button, so to speak, and Visual Studio or Dreamweaver will set up the database connection pool, a basic input form and a basic output table. I believe WebLogic takes this one step further and allows you to graphically connect two pages (represented by Visio-like symbols) and the button will actually modify form A to point to page B.

I'm hoping at some point, the underlying text will go away and we will be able to describe everything we want in terms of visual metaphors - use the ER relationship notation to define the database and flowchart notation to create the processing logic; actual pages can be represented by blocking off portions of the flowchart.

When will we see this?  I predict we'll see very basic "lab-built" web sites built this way by fourth quarter 2008.
TheDavid
Friday, September 01, 2006
 
 
TheDavid:

Your description sounds like something called Labview that I worked with in 1998 (and it was in version 4 then).  At least with there schema, developing was much more difficult than if you just typed it.  Granted, I was writing a program to control a machine through a serial port, which LabView is supposed to be good at, but it was clunkier than what I am now used to in text based languages (C#, Ruby, Python, Lisp, etc.). 

Martin Fowler has a good article on what he calls "language workbenches" which are basically just visual ways to alter the abstract syntax tree.  He refers to them as the "DSL Killer App".  Here's the link:

http://www.martinfowler.com/articles/languageWorkbench.html
Joshua Volz Send private email
Friday, September 01, 2006
 
 
There are a number of graphic languages:

- quartz composer built into OSX
- MAX/MSP audio/signal processing software
- Labview

Also, doesn't your boring example of visual CRUD programming already exist in the form of Microsoft Access and every lame Oracle based RAD tool?
_
Friday, September 01, 2006
 
 
"I'm hoping at some point, the underlying text will go away and we will be able to describe everything we want in terms of visual metaphors - use the ER relationship notation to define the database and flowchart notation to create the processing logic; actual pages can be represented by blocking off portions of the flowchart."

Point taken, except everytime we go forward in that direction, I end up kicking myself because of it.  Think EJB's.  With a few clicks here and there you wouldn't have to write any more CRUD code. Yuu had a persistance layer.  Except...now that you want to do caching and you need xyz object to lazy load part of another entity...holy crap life gets complicated.
Vince Send private email
Friday, September 01, 2006
 
 
one thing...the visual thing has been done before; my first job out of college was to create one of these...we did, it was cool; no one used it. I also know an all visual language came out for the mac in the mid-90s; it had some support...then died.

one thing i'd like is an environment where the program is always running...and my changes are applied immediately.

always be debugging.

i think this use to happen with early basic, logo; not sure, before my time.
lemon obrien Send private email
Friday, September 01, 2006
 
 
By the way, what about perl?

Nobody mentioned it... There are a lot of benefits that could help in both enterprise and one-man/hobby projects - cpan.org, its 'cpan' utility with automatic dependencies tracking is a good example.

From the other hand, perl has a long history and is backed by many developers around the world, it is not dead, and there are a lot of coders that knows it.

The only thing that keeps it from going enterprise is one of its benifits - the lack of PHP-like web pages integration or something simular (from my point of view) - it makes you more serious on methods you use to generate content.

Do you really think it is dead for enterprise?
Alexey Send private email
Friday, September 01, 2006
 
 
Depends how you define Enterprise ...

It's not dead, and I think in Enterpise with unix servers perl is the only 'approved' scripting languages, beside ksh/csh.

But for everything else: it's mostly java/.net.
Rick Tang
Friday, September 01, 2006
 
 
I've written a few  web apps that manage routers, switches, and firewalls / NAT devices. PHP drives the UI/database interaction. Perl is used to interact with the network devices, typically using the Expect module. There are some things that simply cannot be done - easily - from within PHP.

This app is for a multi-billion dollar internet provider and CLEC. You don't get much more "enterprise" than that. They prefer PHP or Perl because their people can do something if I'm not around (I was just a consultant.)

I tried using Ruby for a project there. There was some resistance because it would be too difficult for their people to pick up.

I used to do a lot of J2EE work a few years back. If you stick to servlets, JSP, and JDBC, you're good. As soon as you start getting into EJBs, you're probably starting down the path of over-complexity.
SomeDude Send private email
Friday, September 01, 2006
 
 
Bot - I'd recommend building a few simple webapps in a language (or two) that you love.

Throw that in your resume along with any other related keywords (assuming you have the experience).

I did this with Ruby on Rails.  (was stuck in a dead-end (aren't they all?) .NET job and built a few RoR sites in my spare time)

Once I had the requisite example sites up and running, it was fairly simple to contact recruiters, companies, etc. who were looking for people who had at least done *something* in Rails.

When a technology (like RoR) is just starting up, you'll find you don't have to have done as much / had as much experience, to be considered for an opportunity.

Five months at a RoR startup and there's no way I'm going back to J2EE / .NET or even PHP!

I also get calls / emails from recruiters, companies and individuals (weekly) who find me on LinkedIn.com.  Make sure you're on there and have all your skills / experience listed and up to date.  There's no need to use Monster anymore if you're well-connected on LinkedIn.
Shanti Braford Send private email
Friday, September 01, 2006
 
 
Perl is the defacto standard for CGI and server administration at the companies I consult for; fortune 5s.

Joel's article, I thought, was mostly common sense.  Many people will say pick the right tool for the job -- meaning, go with what you know.

From the article:

"or problems finding programmers who can understand the code, or whatnot."

This is the key point I wished Joel would have spent more time developing.  Large enterprise, as I stated before in this forum, does not care about language; all they care about is who will support the thing-a-mabob when stuff breaks.

It's why Microsoft and IBM have very large lucrative *support* contracts with large enterprise.

Large enterprise, by my definition here, would be a fortune-500 company.

Large companies of this size, drive standards.  IBM is spending tons of money on J2EE because they have large consulting gigs where their customers are dropping buckets of cash into their hands to make, dam, sure support for J2EE will be there for them 10 years from now.

It's the second, and more prevelant, reason things like PHP, Python, Ruby, etc... are not mainstream.

Python may make it more mainstream like Perl has become simply because more and more Linux distros will have it as part of their distro.
~Eric
Friday, September 01, 2006
 
 
Joel's objective, practical approach to the "language wars"  makes a lot of sense. And it so obvious that everyone should agree with him. Right?

My question: why are there so many gurus who get involved in language wars? Do they take it too personally or religiously? I love programming. I'll do it as a hobby. But I don't think I will get involved in those flame wars. I am curious. Are there any similar "wars" in other fields, say, in electronic engineering?
S.C.
Friday, September 01, 2006
 
 
To answer your question, SC, read up on Cognitive Dissonance.

http://en.wikipedia.org/wiki/Cognitive_dissonance

"Tool X MUST be really great because otherwise why would I be using it despite the fact that it's unpopular?"
Joel Spolsky Send private email
Saturday, September 02, 2006
 
 
That's one theory.  However, isn't it possible that people simply find themselves more productive using a framework with more powerful abstractions?

Tim Bray (co-inventor of XML), James Duncan Davidson (Java Servlet Spec, Ant, Tomcat), David Geary (Struts, JSF) and Martin Fowler (Refactoring) have all jumped on the Ruby bandwagon, and, given their respective accomplishments, I'd give them a little more credit than just calling "Cognitive dissonance".  Why not spend a few evenings and learn it?  Learning Ruby on Rails is a good bit easier than J2EE or .NET.

Watch the demo for DabbleDB, found at http://www.dabbledb.com/explore/7minutedemo/.  It was written in Seaside (an obscure but powerful smalltalk framework) in a couple of months by a single developer.  How many thousands of man hours would have been wasted if they decided to take the safe choice and write something like this in Java or .NET?
Scott Wadden Send private email
Saturday, September 02, 2006
 
 
Exactly.
Bot Berlin Send private email
Saturday, September 02, 2006
 
 
"one thing i'd like is an environment where the program is always running...and my changes are applied immediately."

This is how you typically do application development in Smalltalk and Lisp - the programs run in an image, often together with your development tools. I think you can do this sort of development in Ruby and Python as well, but I'm not sure it's very common outside the Smalltalk and Lisp crowd.
Troels Henriksen Send private email
Saturday, September 02, 2006
 
 
Obviously, Wasabi is a safe choice as well :)
Rick Tang
Saturday, September 02, 2006
 
 
The decline of Windows won't happen until someone in charge at Microsoft screws up so severely that it's actually possible to write web applications that genuinely work on more than one web browser, and are as rich as a current desktop app. When you can host on apache running on a linux server and your app is just as good for the linux nerds, the MacOS artistes and the long-time Windows users, then Microsoft will die a horrible death.

Anyone think that'll happen?

Anyone think there'll be a push for tightly binding "rich web 3.0 apps" (I figure web 3.0 is inevitable, I'm just looking forward to web 3.1415926, probably optimized for pie baking company applications) to the next release of the windows operating system?


> Personally, I've surveyed the field, and I think that Python could be the next big thing. There's a lot of big guys backing it.

Sure, because there's noone at all backing C#, and only some irrelevant upstart bothering to include .NET as a core component of their next product release, right?  And Java is only of interest to 1-man bands, no large companies at all.


Incidentally, I have a question:

When did coders make the jump from "big companies are the evil monsters from Dilert" to "the backing of a large corporation is the most significant evidence of technical quality in a development tool" ?

Sunday, September 03, 2006
 
 

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics
 
Powered by FogBugz