If you've got Java and C++, presuming you're fully using the power of these languages, then you should move to Scala. Not to slam any language but in terms of experience if you've only programmed in PHP you'll find Scala "complex". A Java programmer will find Scala complex at first and absolutely wonderful as it soaks in. A C++ programmer already has enough grasp of language subtleties that Scala will not be a problem.
My take on it is it is a sophisticated tool for sophisticated applications, having levels of richness and expressiveness that I haven't experienced in years... got the same feeling as when I moved from C++ to Java when it was new.
I've been using it for about 6 months having written 1000s of lines of code now. Absolutely loving it--and even though I was happy working in Java, I wouldn't go back. (The longer I use Scala the madder I get at Java--why aren't some of the low-hanging language features in Java by now? For Java7 they're talking about strings in switch statements and I'm supposed to be impressed, like they're doing me some great favor?)
Scala-to-Java interoperability is fine... not quite as seamless as the glossy brochure leads you to believe but not at all bad. I've written EJB web apps in a mix of Scala and Java, utilizing a number of 3rd party libraries in both languages. No issues. Actually the only issue I had was with Scala's actors I was trying to use in an EJB. Since actors are basically fancy threads and you're not supposed to create threads in an EJB, I got the trouble I deserved. Actors outside the EJB container work great.
It's a risk--few enterprises are aware of, or ready for, Scala (or other "alternate" languages for that matter), but think about it and it seems inevitable that Scala will capture some enterprise share due to its Java interoperability and strong typing (I love loosely typed script languages too, but I wouldn't want a 50K-line enterprise app done in one).
Congratulations, you're on your way up a different ladder. As an architect you're arguably at the "top" of the technical ladder (and pay scale). Your first management job is an entry into a whole new ladder--if you want it. Be very aware though--this is a different job. I made the jump several years back much as you described and am now a global VP.
The biggest change is that you no longer do the work as an individual contributor. You manage those who do. Sounds simple, right? Biggest problem is that unless you let your tech skills get rusty (NEVER let this happen!) you can probably do many of your guys' jobs better/faster than they can because of your experience. Don't give in to the temptation do to the work yourself. That's no longer your job. You don't get graded or bonused on how well you write code. Now you get graded on how well your team performs as a unit. I can't tell you how frustrating it will be the first time you catch heat for a project in trouble that you just *know* would have been fine if you had been writing code yourself. Don't take it personally--its not a personal attack. Explain your action plan and how you've allocated your resources based on the management team's communicated priorities. Sometimes all you can do is all you can do. Sometimes, on rare occasions, even PHB's are reasonable people if you explain yourself.
You'll have to get used to communicating messages to/from senior management who doesn't know anything about technology, and frequently has zero patience for it. You'll get exposed to different decision logic that now you'll have a growing input to influence rather than just have things land on your head. Largely this is a matter of higher perspective. You'll now be more concerned about a broader scope than just a single project and may choose to make resourcing and priority decisions that won't make sense if you were a non-management coder focused on a particular task.
Here's why its 100% critical you always stay sharp technically:
First there are a lot of non-tech managers who like to poke their ignorant noses into technical matters (not to mention vendors, etc.). Staying sharp means you will always speak with calm authority and never doubt yourself when speaking to your area of strength. In other words you can't be BS'ed. Secondly your team will respect you. You need to build respect like money in the bank for a day you might need to make a withdrawal. Your team needs to know you represent their interests when you meet with your management brethren. Win some battles for them--you'll need the political capital. On those occasions when your job is to deliver a difficult message down the tree your team will at least know you aren't vacantly parroting a message somebody read in Infoworld. They will at least know you understand the implications of what you're saying.
There are plenty of good courses, seminars, and certificate programs you can plug into at universities and colleges in your area in their school of management. I'd pass on the books-de-jour. They'll just preach some 12-step program to overnight success that everyone will see as plastic and methodological. Be yourself!
Give your new career some time. Junior level managers are basically the coffee-getters of senior management just like entry level programmers and get the crap jobs as any newbies would. Stick with it, gain respect, be a team player without being partisan and you'll find your influence and voice growing.
If after a while this isn't your cup of tea there's no shame in re-entering the tech world as an architect.
To me this seems self-evident. Typical commercial software sells 100% of their products *and* sell services to cover their overhead and make a profit. OSS companies often rely largely (or entirely) on the "services" model for their profit motive on services.
This isn't necessarily a bad thing, good for the environment and all that, but c'mon--you'll never make as much money being a good person and responsible corporate citizen as you will make as a cash-greedy monopolist. (If your software is good you very well might establish a much larger user base though.)
So if you can't quite make your OSS company pay off with services alone what'ya gonna do? Juice up prices for "enterprise editions" of your software. As another poster mentioned at that level you're not competing against Microsoft so much as Sun and IBM and their super-inflated fees and professional services organizations.
I'm an IT director and make software buy decisions. To me as long as the price point is equal or less (ok, even a little bit more) I'll favor OSS for the open-ness of the sofware. That way I can judge for myself (for free) the quality of the software before I buy the commercial edition. Compare that to closed commercial software. I've got to go on blind faith that that software isn't a pile of steamy hot crap written by guys who's primary job initiative is cruising Craigslist for new jobs. No thanks. I'll use and abuse an OSS package so if, by the time I decide I want a paid license, I know exactly where the strengths and weakness are, and can negotiate specific support.
Wouldn't this whole spam thing just go away (largely) if we made it too expensive to send? Why not build micropayments for eStamps into email systems so that anyone not specifically "blessed" by you (ie. friends, relatives, or biz email you actually want) would have to pay something to send you unsolicited mail?
It's not fair to companies to *require* them to open their source. That's neither free nor open (in terms of use). There are legitimate reasons why a company may want to sell closed solutions (vertical market differentiation, for example). That's their perogotive. *Forcing* them to open everything up a la GPL is not only unfair, but unrealistic. The BSD license is perfect. The original code is open, while extensions may or may not be. In either case, the original source tree remains open to all as it should. If somone likes a "closed" extension so much, there's absolutely nothing in the BSD license to prevent them from writing something similar and releasing the source. However the reverse is not true for the GPL. Once opened, it can't be closed, even for legitimate reasons. Government funded projects are perfect for BSD. (Of course a closed-source license for such projects are totally inappropriate!)
Man, did I get an education reading this thread!Until now I thought being pro-open-source was pretty much equal to pro-Linux/anti-MS. It was "educational" to learn how, apparently, I must now consider Christian beliefs subject for ridicule or if they're "fundamentalist" enough (open to wide interpretation of that word), even "dangerous".
Sheesh! And how do ya'll (the broader./ community) react when people tirelessly dredge up a tarball of the most extreme behaviors of the tech-savy and nail it to the wall and say: "SEE!! We have to **STOP** those DANGEROUS vido-game playin, computer hackin, web-page destroying, illegal music tradin pornographers who are ALL training our children to shoot their classmates and subverting our democracy and American way of life!" I'd say ya'll don't take very kindly to being lumped and classified like that. No... I'd say the reaction is, well... loud and vocal.
This is one very pro-open-source Christian who isn't about to sit here quietly while a fair number of you do that to us, er, me.
I'm not the slightest bit "threatened" by "new ideas" like evolution, even if I don't agree with them. Completely apart from religion, as a university-educated technologist I have serious questions about the "proof" of evolution (as we now understand it) offered by science. I'll be the first to say that creationists have taken valid questions and some intersting hypotheses and completely destroyed them with highly questionable (embarassing) scientific practice. That only means I'll continue to ask more questions of science and faith, and I expect my kids to do the same.
Read enough of this? Fine with me. Kindly disassociate your technology from your theology (or lack thereof) and I'll gladly repay the favor.:-)
Stopping spambots is fantastic, but this is a defensive measure. Aren't there offensive measures people can use? What about a 'honeypot' approach. Perhaps you set up a bogus site with zillions and zillions of easy-to-find but totally bogus email addresses. The let the spammers download 10-15GB of worthless addresses that will (hopefully) choke their email pipe. Make it "ugly" enough out there and just maybe a few of the less dedicated might decide it's not worth it.
I don't see this threat from ID cards. You're describing policy, i.e. what it is legal/illegal to do with certain information. For example who cares if the gov't knows I attent certain political rallys or "tracks" me? (This is also an incredibly heroic assumption about the capabilities of the gov't computer systems. Remembery they can barely keep straight who paid their taxes.) Maybe somebody should'a been tracking Timothy McVeigh! The problem comes when someone shows up and says "You can't say that, or go there anymore." This is a danger our democracy must protect against right now, and adding ID cards to the mix doesn't necessarily change the problem.
The guys I worry about are corporations, who have excellent computer savy and already track my every waking moment trying to sell me things. Government is already restricted by laws regarding what they can and can't do with certain information. Corporations are not so restricted! I would definitely want to see some *consumer* information proetection laws on the books before ID cards were impleneted. For example my data can't be sold, collected, traded, or used without my consent. Today if I give my name to a company it is now in their database and is their "asset". IMO right to free speach, and right to anonymous free speach are not the same thing. ID cards may be a threat to the latter but don't (of themselves) threaten the former.
So what's the benefit of this kind of system? Individualized transport to anywhere. We already have a system like that... cars! The only thing we do with this system (at a cost of zillions of dollars) is remove the task of driving from people. The benefit of public transportation is the gain from economies of scale. Get lots of people into one machine (a bus for example) and you need less resources to move these folks around and reduce the number of vehicles on the street. The type of system mentioned here does not truely benefit from any economies of scale.
Why is it that many netizens, chief among them
apparently RMS, are so worked into a frenzie about
civil liberties and back-door encryption? Granted
vigilence of our freedoms is always needed but
from the reports I've seen the proposals,
including a back-door encryption key, don't
provide our security agencies any more power in
the digital world than they already have in the
real world. They can, with a court warrant,
wire-tap phones, search residences, etc., so
how are my civil liberties differently affected
if these same exact capabilities (in the same
measure) are afforded to authorities in digi-space?
I certainly don't want the Fed scanning my email
willy-nilly, but I don't see that is what they've
requested. The Fed can search my home today
with a warrant but I don't live in daily fear
that some G-man will show up at my door to "have
a look around". Do you? If not, then how is
a warrant-enabled "tap" into encrypted
communication be any different?
Other's have commented on your "unelected president" remark, but I'll go further to express my view that this is an anti-patriotic, and un-American statement in this time of crisis. Even our president's (and he is our president whether you voted for him or not) bitterest political rivals have rallied around him as a central point of leadership. Introducing factious sentiment at a time when unity is critical is an un-American viewpoint.
Not surprising and a perfectly logical move for Bill Gates & team. A PC is still, despite all attempts of MS to the contrary, an open and general-purpose machine. MS will probably never have 100% control of it and will always have a cloud of legal storms surrounding its attempts to shut everyone else out.
Enter the XBox. It's a closed platform. There's absolutely no reason or pretense it needs to be open. They control 100% from hardware, OS, software, etc. It seems clear they find value in a strategy to expand the "point solution" platform to encompas more and more of what general-purpose PCs do today. Once locked into anti-competive platforms (and to be sure the services that will accompany them), MS can achieve the kind of mindshare domination they've always wanted. By that point maybe they won't even care if there are still a few geeks running around loose who still use PCs with Linux!
Interesting, eh? When they finally produce their suite of digi-appliances any attempt to use or modify them in some non-MS-approved manner will at least void the warrantee and be unsupported and at worst be criminal. (Oh... you thought you owned that appliance? Terribly sorry, sir, you only licenced it and your modification constitutes actionable breach of your license agreement!)
I'd like to annouce that I'm forming an advocacy
group for the precious LCD life forms who are otherwise unrepresented. We need to protect
their rights so that they are not exploited,
abused, offended, or eaten. I think our first
legislation will be to mandate jail time for
display homicide if you allow your laptop
battery to drain and thereby kill your LCD
community. After that I think a labor-law
will be necessary so these little creatures
won't be pushed beyond a 40-hr work week.;-)
If you've got Java and C++, presuming you're fully using the power of these languages, then you should move to Scala. Not to slam any language but in terms of experience if you've only programmed in PHP you'll find Scala "complex". A Java programmer will find Scala complex at first and absolutely wonderful as it soaks in. A C++ programmer already has enough grasp of language subtleties that Scala will not be a problem.
My take on it is it is a sophisticated tool for sophisticated applications, having levels of richness and expressiveness that I haven't experienced in years... got the same feeling as when I moved from C++ to Java when it was new.
I've been using it for about 6 months having written 1000s of lines of code now. Absolutely loving it--and even though I was happy working in Java, I wouldn't go back. (The longer I use Scala the madder I get at Java--why aren't some of the low-hanging language features in Java by now? For Java7 they're talking about strings in switch statements and I'm supposed to be impressed, like they're doing me some great favor?)
Scala-to-Java interoperability is fine... not quite as seamless as the glossy brochure leads you to believe but not at all bad. I've written EJB web apps in a mix of Scala and Java, utilizing a number of 3rd party libraries in both languages. No issues. Actually the only issue I had was with Scala's actors I was trying to use in an EJB. Since actors are basically fancy threads and you're not supposed to create threads in an EJB, I got the trouble I deserved. Actors outside the EJB container work great.
It's a risk--few enterprises are aware of, or ready for, Scala (or other "alternate" languages for that matter), but think about it and it seems inevitable that Scala will capture some enterprise share due to its Java interoperability and strong typing (I love loosely typed script languages too, but I wouldn't want a 50K-line enterprise app done in one).
Congratulations, you're on your way up a different ladder. As an architect you're arguably at the "top" of the technical ladder (and pay scale). Your first management job is an entry into a whole new ladder--if you want it. Be very aware though--this is a different job. I made the jump several years back much as you described and am now a global VP.
The biggest change is that you no longer do the work as an individual contributor. You manage those who do. Sounds simple, right? Biggest problem is that unless you let your tech skills get rusty (NEVER let this happen!) you can probably do many of your guys' jobs better/faster than they can because of your experience. Don't give in to the temptation do to the work yourself. That's no longer your job. You don't get graded or bonused on how well you write code. Now you get graded on how well your team performs as a unit. I can't tell you how frustrating it will be the first time you catch heat for a project in trouble that you just *know* would have been fine if you had been writing code yourself. Don't take it personally--its not a personal attack. Explain your action plan and how you've allocated your resources based on the management team's communicated priorities. Sometimes all you can do is all you can do. Sometimes, on rare occasions, even PHB's are reasonable people if you explain yourself.
You'll have to get used to communicating messages to/from senior management who doesn't know anything about technology, and frequently has zero patience for it. You'll get exposed to different decision logic that now you'll have a growing input to influence rather than just have things land on your head. Largely this is a matter of higher perspective. You'll now be more concerned about a broader scope than just a single project and may choose to make resourcing and priority decisions that won't make sense if you were a non-management coder focused on a particular task.
Here's why its 100% critical you always stay sharp technically:
First there are a lot of non-tech managers who like to poke their ignorant noses into technical matters (not to mention vendors, etc.). Staying sharp means you will always speak with calm authority and never doubt yourself when speaking to your area of strength. In other words you can't be BS'ed. Secondly your team will respect you. You need to build respect like money in the bank for a day you might need to make a withdrawal. Your team needs to know you represent their interests when you meet with your management brethren. Win some battles for them--you'll need the political capital. On those occasions when your job is to deliver a difficult message down the tree your team will at least know you aren't vacantly parroting a message somebody read in Infoworld. They will at least know you understand the implications of what you're saying.
There are plenty of good courses, seminars, and certificate programs you can plug into at universities and colleges in your area in their school of management. I'd pass on the books-de-jour. They'll just preach some 12-step program to overnight success that everyone will see as plastic and methodological. Be yourself!
Give your new career some time. Junior level managers are basically the coffee-getters of senior management just like entry level programmers and get the crap jobs as any newbies would. Stick with it, gain respect, be a team player without being partisan and you'll find your influence and voice growing.
If after a while this isn't your cup of tea there's no shame in re-entering the tech world as an architect.
Good luck!
To me this seems self-evident. Typical commercial software sells 100% of their products *and* sell services to cover their overhead and make a profit. OSS companies often rely largely (or entirely) on the "services" model for their profit motive on services.
This isn't necessarily a bad thing, good for the environment and all that, but c'mon--you'll never make as much money being a good person and responsible corporate citizen as you will make as a cash-greedy monopolist. (If your software is good you very well might establish a much larger user base though.)
So if you can't quite make your OSS company pay off with services alone what'ya gonna do? Juice up prices for "enterprise editions" of your software. As another poster mentioned at that level you're not competing against Microsoft so much as Sun and IBM and their super-inflated fees and professional services organizations.
I'm an IT director and make software buy decisions. To me as long as the price point is equal or less (ok, even a little bit more) I'll favor OSS for the open-ness of the sofware. That way I can judge for myself (for free) the quality of the software before I buy the commercial edition. Compare that to closed commercial software. I've got to go on blind faith that that software isn't a pile of steamy hot crap written by guys who's primary job initiative is cruising Craigslist for new jobs. No thanks. I'll use and abuse an OSS package so if, by the time I decide I want a paid license, I know exactly where the strengths and weakness are, and can negotiate specific support.
Wouldn't this whole spam thing just go away (largely) if we made it too expensive to send? Why not build micropayments for eStamps into email systems so that anyone not specifically "blessed" by you (ie. friends, relatives, or biz email you actually want) would have to pay something to send you unsolicited mail?
It's not fair to companies to *require* them to open their source. That's neither free nor open (in terms of use). There are legitimate reasons why a company may want to sell closed solutions (vertical market differentiation, for example). That's their perogotive. *Forcing* them to open everything up a la GPL is not only unfair, but unrealistic. The BSD license is perfect. The original code is open, while extensions may or may not be. In either case, the original source tree remains open to all as it should. If somone likes a "closed" extension so much, there's absolutely nothing in the BSD license to prevent them from writing something similar and releasing the source. However the reverse is not true for the GPL. Once opened, it can't be closed, even for legitimate reasons. Government funded projects are perfect for BSD. (Of course a closed-source license for such projects are totally inappropriate!)
It ain't easy being Rome.
Man, did I get an education reading this thread!Until now I thought being pro-open-source was pretty much equal to pro-Linux/anti-MS. It was "educational" to learn how, apparently, I must now consider Christian beliefs subject for ridicule or if they're "fundamentalist" enough (open to wide interpretation of that word), even "dangerous".
./ community) react when people tirelessly dredge up a tarball of the most extreme behaviors of the tech-savy and nail it to the wall and say: "SEE!! We have to **STOP** those DANGEROUS vido-game playin, computer hackin, web-page destroying, illegal music tradin pornographers who are ALL training our children to shoot their classmates and subverting our democracy and American way of life!" I'd say ya'll don't take very kindly to being lumped and classified like that. No... I'd say the reaction is, well... loud and vocal.
:-)
Sheesh! And how do ya'll (the broader
This is one very pro-open-source Christian who isn't about to sit here quietly while a fair number of you do that to us, er, me.
I'm not the slightest bit "threatened" by "new ideas" like evolution, even if I don't agree with them. Completely apart from religion, as a university-educated technologist I have serious questions about the "proof" of evolution (as we now understand it) offered by science. I'll be the first to say that creationists have taken valid questions and some intersting hypotheses and completely destroyed them with highly questionable (embarassing) scientific practice. That only means I'll continue to ask more questions of science and faith, and I expect my kids to do the same.
Read enough of this? Fine with me. Kindly disassociate your technology from your theology
(or lack thereof) and I'll gladly repay the favor.
Stopping spambots is fantastic, but this is a defensive measure. Aren't there offensive measures people can use? What about a 'honeypot' approach. Perhaps you set up a bogus site with zillions and zillions of easy-to-find but totally bogus email addresses. The let the spammers download 10-15GB of worthless addresses that will (hopefully) choke their email pipe. Make it "ugly" enough out there and just maybe a few of the less dedicated might decide it's not worth it.
Any other offensive measures possible?
I don't see this threat from ID cards. You're describing policy, i.e. what it is legal/illegal to do with certain information. For example who cares if the gov't knows I attent certain political rallys or "tracks" me? (This is also an incredibly heroic assumption about the capabilities of the gov't computer systems. Remembery they can barely keep straight who paid their taxes.) Maybe somebody should'a been tracking Timothy McVeigh! The problem comes when someone shows up and says "You can't say that, or go there anymore." This is a danger our democracy must protect against right now, and adding ID cards to the mix doesn't necessarily change the problem.
The guys I worry about are corporations, who have excellent computer savy and already track my every waking moment trying to sell me things. Government is already restricted by laws regarding what they can and can't do with certain information. Corporations are not so restricted! I would definitely want to see some *consumer* information proetection laws on the books before ID cards were impleneted. For example my data can't be sold, collected, traded, or used without my consent. Today if I give my name to a company it is now in their database and is their "asset".
IMO right to free speach, and right to anonymous free speach are not the same thing. ID cards may be a threat to the latter but don't (of themselves) threaten the former.
So what's the benefit of this kind of system? Individualized transport to anywhere. We already have a system like that... cars! The only thing we do with this system (at a cost of zillions of dollars) is remove the task of driving from people. The benefit of public transportation is the gain from economies of scale. Get lots of people into one machine (a bus for example) and you need less resources to move these folks around and reduce the number of vehicles on the street. The type of system mentioned here does not truely benefit from any economies of scale.
Why is it that many netizens, chief among them
apparently RMS, are so worked into a frenzie about
civil liberties and back-door encryption? Granted
vigilence of our freedoms is always needed but
from the reports I've seen the proposals,
including a back-door encryption key, don't
provide our security agencies any more power in
the digital world than they already have in the
real world. They can, with a court warrant,
wire-tap phones, search residences, etc., so
how are my civil liberties differently affected
if these same exact capabilities (in the same
measure) are afforded to authorities in digi-space?
I certainly don't want the Fed scanning my email
willy-nilly, but I don't see that is what they've
requested. The Fed can search my home today
with a warrant but I don't live in daily fear
that some G-man will show up at my door to "have
a look around". Do you? If not, then how is
a warrant-enabled "tap" into encrypted
communication be any different?
Other's have commented on your "unelected president" remark, but I'll go further to express my view that this is an anti-patriotic, and un-American statement in this time of crisis. Even our president's (and he is our president whether you voted for him or not) bitterest political rivals have rallied around him as a central point of leadership. Introducing factious sentiment at a time when unity is critical is an un-American viewpoint.
Not surprising and a perfectly logical move for Bill Gates & team. A PC is still, despite all attempts of MS to the contrary, an open and general-purpose machine. MS will probably never have 100% control of it and will always have a cloud of legal storms surrounding its attempts to shut everyone else out.
Enter the XBox. It's a closed platform. There's absolutely no reason or pretense it needs to be open. They control 100% from hardware, OS, software, etc. It seems clear they find value in a strategy to expand the "point solution" platform to encompas more and more of what general-purpose PCs do today. Once locked into anti-competive platforms (and to be sure the services that will accompany them), MS can achieve the kind of mindshare domination they've always wanted. By that point maybe they won't even care if there are still a few geeks running around loose who still use PCs with Linux!
Interesting, eh? When they finally produce their suite of digi-appliances any attempt to use or modify them in some non-MS-approved manner will at least void the warrantee and be unsupported and at worst be criminal. (Oh... you thought you owned that appliance? Terribly sorry, sir, you only licenced it and your modification constitutes actionable breach of your license agreement!)
I'd like to annouce that I'm forming an advocacy group for the precious LCD life forms who are otherwise unrepresented. We need to protect their rights so that they are not exploited, abused, offended, or eaten. I think our first legislation will be to mandate jail time for display homicide if you allow your laptop battery to drain and thereby kill your LCD community. After that I think a labor-law will be necessary so these little creatures won't be pushed beyond a 40-hr work week. ;-)