Apparently there is a hardcore minority who differentiates "programming" from "IT"... just as the Stallman crowd believes it to be of vital political importance that we call it "GNU/Linux" rather than just "Linux". However, just as the overwhelming majority of people know the OS as "Linux", so to do most people lump all computer-related jobs under the "IT" umbrella.
As a "developer", I consider my career and skillset to be totally different from an "admin" or someone in "ops"... or even "maintence developers" who look after the legacy apps rather than design new applications. However, the CEO refers to all of us as "IT". We all go to "IT" job search sites to post our resumes. Other than a minority of assholes who see admins as beneath them... most everyone refers to all of us as "IT". I'm cool with that.
Last time I checked Stella Artois was a Belgian brand.
Yes... but why stand in the way of this kid's bizarre (and entertaining) self-hatred?
It's days like this that I miss the fine editing that CmdrTaco used to provide.
I kept my snark to myself during the CmdrTaco farewell love-fest last week, because it seemed a bit "too soon" for that. However, I gotta ask... what in the world are you guys talking about?!? No one's been putting "fine editing" on anything for years now. Headlines were misleading and sensationalized to draw eyeballs last month, and they still will be next month.
That is Slashdot. Most of us who love it, do so for its amazing comment community rather than its borderline whore-ish editors. If you want to mourn CmdrTaco's departure, you're a bit late... the departure really happened back when Slashdot was first sold off to a corporate interest back in the day.
Unless the Calibre developer invests tens of thousands (or more) and a few years of his life, all into suing a company that is probably one guy working out of his apartment anyway, then this is just some online whining.
The GPL is not a magical hall monitor shield, which forces people to show you their hall pass when you wave it. Rather, it simply gives you the right to sue if you have the resources to pursue that road. In this case, I don't know if the Calibre guy has those resources, or if the Hamster guy has enough resources to be worth suing anyway.
The whole Java *or* Python discussion is irrelevant. You can use Jython, and take advantage of all the Python and Java libraries.
Did you not read a word that this guy wrote, or did you simply not understand any of his points?
The weaknesses that he pointed out did not deal with Python "lacking access to Java libraries". The weaknesses that were pointed out included Python's lack of compile-time type-checking, lack of real publication and enforcement of API contracts, and lack of lexical scope.
Jython addresses none of that. It does not magically transform Python from a hacky Perl-successor into a language broadly suitable for large scale enterprise development. It's just a library that lets you run your same old hacky scripts on a JVM.
You are wrong about the frameworks not being as powerful as Oracle etc, but I don't blame you since it takes a long time to become familar with a large framework. I would also not have time to learn eg. any big Java framework, so I'm in the same boat.
I'm not trying to be a jerk, but I'm not sure you have a basis for comparison. "Oracle" is not a Java framework, it's just the company that acquired the Java trademarks from Sun. I guess they own the trademark for JEE too... but that's not really a "framework", and its direction isn't so much identified with Oracle. Java web frameworks would include things like Spring (used by most shops these days), Seam, Struts, Wicket, etc.
Anyway, I have written apps in "dynamic language" frameworks... including Rails, Django (sorta), Symfony, CakePHP, and node.js. It's just not the same. It's like comparing a car to a space shuttle.
That said, I don't mean that these frameworks are inherently "inferior" to Java frameworks. I'm just saying that they are different tools for different jobs. If you're building a site that isn't heavily dynamic on in the back-end yet needs to integrate easily with front-end AJAX, and you don't want to recruit and pay more for developers with experience in commerce or large enterprise systems... then it might be silly to insist on a full Spring stack. At the same time, if you're a large institution, writing an app through which business will be conducted or money changing hands... then you probably don't want a dynamic language framework, because the framework and its developer talent pool are not as accustomed to dealing with the challenges that your project will face.
When we're used to swinging a hammer, everything starts to look like a nail... but the reality is that there is plenty of room for both a hammer and a screwdriver in the toolbox.
Let me stop you at, "You'd need to add an ID column...".
In a large enterprise shop, changing the schema for an established legacy database generally is not an option. There are usually dozens of live production applications tied into the existing schema, and management would never sign off on introducing needless risk for all of those.
Even if you did get approval to move forward, you would need to time and QA resources to fully regression test all of those apps (assuming you identified them all and didn't miss any odd stragglers). Many of those apps would inevitably need modification, because they were coded by offshore or junior-level devs with sloppy practices (e.g. raw SQL that uses column position numbers rather than column names).
For even a mid-size company, "adding an ID column" might take several months and a few hundred thousand dollars. You don't do that. You might try a workaround of creating custom database views just for the new app, mimicking the schema that your framework needs. Better yet, you just search for a more powerful ORM framework (perhaps this SQLAlchemy package?). Most likely of all, you simply use Java in the first place... because its leading frameworks are built by people who are used to working in these environments and dealing with such considerations.
The last time I tinkered with Django, I tried writing a simple CRUD app for an existing database at my job. After wasting a few hours learning how the ORM package works and setting up my models, I came to realize that Django does not support database tables with composite primary keys . In other words, it doesn't work with almost any legacy database that you will find in any enterprise shop on the planet. It wasn't worth re-working the schema, so I had to retreat back to Spring MVC and wrestle its XML.
I'll give Django credit, though. It's still several steps ahead of Ruby on Rails, which my last experiment taught me doesn't support more than one database per app !
I make a point to take one these "dynamic language" frameworks for a spin every 6-12 months... because I keep hearing that they are leapfrogging Java, and Oracle is destroying the universe anyway, and my career will be over soon if I don't migrate my skillset. So far I'm just not seeing it, though. These frameworks may be useful for simple non-commerce apps, stood up in a hurry by junior-level devs... but none of them seem remotely ready for any of the realities I deal with day-to-day when working for large companies or handling commerce.
In any case, this is a grad course, so the price of undergrad tuition is not really relevant to the discussion
[nitpick] It is in fact an undergrad course. [/nitpick]
Ultimately, I didn't so much intend to comment on the cost of elite-level education as I on the exclusivity of it. If it turns out that there are thousands of "general public" people who outscore the Stanford students on the grading curve... then on some level it would call into question why those students are "Stanford material" and the higher-scoring public members are not. We often presume that the system is a meritocracy, and what I'm basically trying to point out is how this may illustrate that it is not.
The only person who always got his work done by Friday was Robinson Crusoe.