"Strange and unprofessional" -- hold that up as a compliment! It's just another way of saying "imaginative and alive". Woohoo, to hell with the enterprise! Let's all say to together!
I've been having a lot of fun with the ChiPy lately, we've got a pretty good group going. There's actually a number of us using Python in our jobs, but the group isn't professional. Those of us who use it in our jobs do so because we have autonomy, and there's not much difference between that and the hobbyists, because either way we enjoy what we're doing. It's fun because it's not professional. Java groups are professional and they are booooring.
Professionalism is a facade that allows you to build working relationships. But we can base our relationships on better things than professionalism:
Respect for the people you work with, including your customers. Maybe you don't agree with them, maybe you don't consider them peers in some of the things you do, but you appreciate something about them. That something is what you build a relationship on, and you try to avoid the other stuff.
Empathy for the people you work with. Sympathy (to contrast) implies a value judgement, an emotional response, but empathy is really just a rational response. Empathy means you work to understand their perspective and desires.
A conscious acknowledgement and appreciation of the institution that brings you together. When we are part of a decision-making process for an institution (including the ad hoc decisions we make during our working day) we must make those decisions as representatives of the institution.
However, there is an opposite extreme, where the decision-maker ignores the individuals that make up the institution, include ignoring self. I can make decisions that I personally object to, like the use of proprietary software in some circumstances. However, I shouldn't deny that at the same time, I will still object to the very decision I am making, and that objection will have real consequences in my own work. I can become disinvested in my own decisions -- a peculiar and dangerous circumstance. I should accept that my self-investment is not absolute even when I am responsible for making a decision, and that in turn effects the institution. Isolated criteria (like the profit motive) are incomplete and inaccurate. Professionalism can be a way of isolating ourselves from our personal motivations.
Courtesy and etiquette are still important. They are symbolic, but they symbolic of an underlying respect,
OK, I'm just making this up as I go along. But I think there's a lot of alternative models to professionalism.
>Woohoo, to hell with the enterprise! Let's all say to together!
To hell with the enterprise!
No, but seriously... To hell with the enterprise. I've been sitting around for years waiting for dynamic languages to gain acceptance in the enterprise. I figured it takes even the best technology a little time before it's going to be integrated into the status quo. But I'm beginning to think that the only thing standing in the way is dynamic-languages-are-scary-and-unprofessional FUD. "It's okay to play around in Ruby and Python for your guest-book thing, just don't try to bring it into my enterprise where we do real work!" I sometimes wonder if this kind of attitude is really just the Politics Oriented Software Developers preserving their right to a chaotic work environment:
If you can't beat 'em, bitch and moan about the rules. ;)
While I totally agree with both of you on your views of 'enterprise' applications (10 years working for a govt. dept. will do that to you), I do think Ryan is being completely unfair to the original article.
"[C]hoosing another Web framework can seem strange or unprofessional. However, there are many viable alternatives on the market." (emphasis mine)
Dropping the context does make his initial statement seem declarative in a way that clearly wasn't intended. To stop after the very first line of an article that goes on to show the power of a specific dynamic language, just to criticise that introduction, almost makes it look like you were waiting for this fight. He's not aiming this article at people who are already utilising Python, Ruby et.al, he's very clearly addressing it to those for whom J2EE development is the be-all-end-all.
Ryan wrote: "I really do think 90% of J2EE is complete shit so please flame away on that one."
Clearly the author sees direct value in using Ruby, so it's possible he might even agree with you, otherwise he'd be spending his time on Java articles. This wasn't "grandstanding", this was writing to an audience. The last thing we need is for Java developers to see the "other camps" get all pissy about an out-of-context remark. Let's choose our battles with a bit more care.# Alex Dante
You're being too generous here. Even without the context, the use of the word "seem" in the quoted sentence is fairly clear. If I were a cynic I might conclude that Ruby programmers were passionate but sloppy.# Bob David
I do think Ryan is being completely unfair to the original article.
Oh, I wouldn't take it that far. I think he was just bothered that the author of the article felt a need to apologize for a productive, dynamic, less-formal language. Ryan's point, I think, is that in fact these less-formal languages aren't just theoretically superior, they are demonstrably superior; formalist languages are full of hype, but when you look at the real software that we use (in the case of the web, indirectly) it's not Java, and Java doesn't deserve to be some gold standard for technology comparisons. Even by "professional" standards (which as joeg pointed out, don't actually exist) Java doesn't deserve particular authority compared to other traditional systems like Perl or PHP. And Ruby is not strange at all compared to Perl or PHP.
None of this was really the point of my article -- I just used his post as a starting point to continue some other thoughts I'd been having.
Professional, to computer people, is doing exactly what the rest of the herd is doing. No more, no less. Whatever the current fad is, you MUST follow it.# anonymous
Years ago there was an article where a judge declared that programmers were not professionals. If I remember correctly, a architecture company was trying to sue a software company because a bug in their software had negatively affected a project they were working on. According to the judge, they couldn't sue the programmers because there was no universally accepted professional standards. Unlike engineering or accounting, there were no certifications that could be used to judge the output therefore they could not be sued for failure to meet those standards. The jist of the article was that programmers were more akin to craftsmen or artisans than to professionals. The judge was talking about the defintion in a legal context - not in it's common usage.
I think it's been over a decade since that article came out. Maybe things have changed since then but I haven't referred to myself as a professional since then.
Sorry, but i guess that hasn't changed a bit. Not even J2EE professionals are the same level as a engineer. ;)
Software engineering... yeah, right! It's one thing to build stuff out of concrete things. It's another thing entirely to build abstract stuff atop hundreds of layers of other abstract stuff, all running atop a real concrete thing which is itself error prone and subject to failures due to minimal variations in its phisical conditions...# rmalafaia
While this rant-fest is in progress, gonna take out all the stops. Let's face it - all platforms for web development suck. Period. But for different reasons.
Many of the dynamically typed offerings show amazing promise... but don't look too closely. What's missing is that final 20% for those "exceptional use cases" which only a paid programmer will deliver e.g. unicode support for PHP - who in their right mind would volunteer?
Meanwhile the dollars and column inches are still flowing to technologies which appeal only to flagellants and terminally stupid. Technologies where that final 20% has been done (by someone who got paid) but have a general track record, when it comes to application programming, for delivering way over time if at all.
Today, every time I see someone put "dynamically typed" and "enterprise" in the same block of text, between the lines I'm reading "give us some real money and we'll really show you something". That seems to be the chicken and the egg of a remark like "strange and unprofessional". Of course it's strange and unprofessional! No one has fronted the bucks to package it for "enterprise fingers".
What's strangest of all, to me, is there still seems to be no real sign of any of the big software houses really getting behind a dynamically typed language. Sure there's concessions like IronPython, JSR 223 and the article in question but when did you last hear IBM touting "Websphere with Python, Perl, Ruby and PHP support"? It's tempting to suggest some kind of conspiracy (e.g. strongly typed sells IDEs) but far more likely is simple human falacy like the sales folk have got too used to talking to managers instead of developers.
The tradegy in all this comes by way of personal analogy. Where I work (best left un-named) we have a number of trainee software developers who are still studying while working for us part-time. The brightest of the bunch, who has all the hallmarks of an excellent developer, recently told me, based on his "enterprise experience", that he won't be going into IT when he's finished his studies. He doesn't know what he's going to do instead but definately not IT. That's a huge waste, and not only of his time.
"What's strangest of all, to me, is there still seems to be no real sign of any of the big software houses really getting behind a dynamically typed language. Sure there's concessions like IronPython, JSR 223 and the article in question but when did you last hear IBM touting "Websphere with Python, Perl, Ruby and PHP support"? It's tempting to suggest some kind of conspiracy (e.g. strongly typed sells IDEs) but far more likely is simple human falacy like the sales folk have got too used to talking to managers instead of developers."
So, if these big corps need to support their legacy systems, and to support everything that they need they go to great lengths of even opening their own universities, how would they want to change everything in the name of "improved productivity", as it was a goal at all. They want to simplify what they need to support, while maintaining their status quo. That's why a language like Java which can be run everywhere is important. Train someone in it on a Windows machine and he could be used to maintain something in big irons. This big ball of mud won't stop getting bigger and bigger. More systems, more softwares, more people trained.
Why is that that when someone is not "professional" he feels compelled to use alternatives to what is used by the professionals? What if someone has been a professional for a decade and then decides to step aside and become something else? Maybe he forgot what a professional should use?
"It's so simple to be happy, but so difficult to be simple." » Gururaj Ananda Yogi
It's like life and death. Somethings matter the most when we need them the most.
I'm a Ruby proponent, BTW.
> What's strangest of all, to me, is there still seems to be no real sign of any of the big software houses really getting behind a dynamically typed language.
Sun Microsystems: tcl. IBM: REXX and VisualAge Smalltalk. Microsoft: Visual Basic. The fact that Sun changed its mind about tcl doesn't mean it didn't happen. (I'm not sure IBM could be said to have a mind to change.) Ah, but these weren't the dynamically typed languages you were looking for.# Bob David
Large software houses will support dynamic languages as soon as they figure out how to tools for them to large enterprise customers.# Dan
"Ah, but these weren't the dynamically typed languages you were looking for."
That's always the problem with ranting and IT. Usually turns out the thing you were ranting about is based on personal false premises. Perhaps should re-word "What surprises me is the BigCo isn't focused on fulfilling my, and only my, needs..." ;)
And it seems I can eat my own words (and do so happily);
http://news.zdnet.com/2100-3513_22-5589559.html "Big Blue backs PHP for Web development"
Although that's PHP specific the statements that stand out (given this is position-defining PR);
Rod Smith, IBM's vice president of emerging technology:
"We've got ideas for improving things
the simplicity of PHP is one of its greatest assets
We're in a better position to look at a language that fits people's background and what they want to accomplish, rather than saying everything has to be written in one particular language that scales from easy-to-use to high-performance systems"