Intellij IDEA is ok, but only on par with NetBeans or Eclipse, certainly not superior. However, I prefer Eclipse for several reasons
It's 100% free (not just a scaled down "community" edition).
There are plugins for everything you can image (most are free as well).
I have to develop in multiple languages (Java, C++, Perl, Python, PHP, Groovy, even COBOL!) as well as several Web technologies (Ajax,.jsp, javafaces, etc). All (and many more) are nicely supported in the same IDE.
Eclipse is always under heavy development and is improving at a phenomenal pace. This used to be a PITA due to things getting broken, but each new release now is more stable and feature rich than ever.
It provides a powerful foundation for writing RCP applications to create custom standalone tools.
Evidence that it will be around for a while can be found in all the support from the development industry. Almost all development toolmakers of any size play well with Eclipse it they support any third-party IDEs at all.
Like religion and politics, IDEs are very much a personal preference and I've tried (and continue to try) just about all of them, but I haven't found any that are superior to Eclipse for day-in/day-out development productivity. Apple can keep their XCode and Objective-C. I've been force to use it for development as well and I gotta say, it's like going back 10 years. XCode is the most confining environment I've worked with in a long time. Objective-C is only still around for one reason - because Apple practically forces it down developers' throats. It should have died along with NextStep (it seems to be the worst of C++ and SmallTalk combined). Sure, you can use other languages and IDEs on OS X, but Apple makes it clear that XCode/Objective-C is the preferred development environment and it's the ONLY environment if you want to develop for the iPhone.
Java will run on all platforms except (non-jail broken) iPhones, although even this can be gotten around via some tools (xmlvm, metismo, etc).
BTW, java could technically run on the iPhone but Apple won't allow it (for a boatload of BS reasons, when in reality it boils down to greed and customer control). Just another reason to skip the iPhone.
I don't have a problem with a patent being granted on some new touch screen technology (such as a new capacitive or resistive technology), but a patent on using gestures, especially ones like pinch for zoom is ridiculous. Once the underlying hardware technology was available, the UI gestures were obvious and should not be patentable.
I'm thinking about writing an app to wipe my a$$. I better apply for a patent for using my a$$ to interact with a touch screen device before Apple patents that too. It blows my mind that a patent can be granted for something as obvious as using one's fingers to interact with a device. Seems that prior art for this was established when we climbed out of the primordial soup.
Um, idiots should not throw stones from their glass houses. You're an independent software developer, not an independent contractor that develops software. There are different types of independent developers, but maybe you can't see that with your tunnel vision. ANY "independent" contractor that works for and by himself (i.e. does not have employees) gets hit by this. Most of the contracts I've seen are for 6-12 months and unless you can afford to hop around the country looking for work every 6 months, chances are you can't afford NOT to extend your contract with a happy customer that wants to continue your services. I've been there and I had to work 80+ hours a week (sometimes more) just to keep more than one contract going at a time so I wouldn't either be out of work until the next contract, or accused of being an employee by the IRS. What f&cking business is it of the IRS if I'm an employee or self-employed. Either way they get their damn money.
The point of TFA was not that it was impossible, just that the system's stacked against indies. Maybe you like that. As a former indy forced into submission, it pissed me off!
I was an independent contractor/developer for over 15 years and it was great. However, the dive in the economy and the items mentioned in the original post have squeezed things so much that large contracting organizations are swallowing up all the work and forcing independent contractors to roll over or hit the road. It doesn't matter what you know or how valuable to their clients. Decisions are made from the top of the organizations and middle management has little or no say about it.
I've been in software development for over 30 years and have always kept my skillset crisp and current. I've worked as W2 and 1099 over the years and I like 1099 much better (eg. no politics, focus on the task at hand rather than on corporate culture, more say in what and how I do things, etc.). However, unless corporations begin to operate like small companies (where the end product and customer satisfaction matters rather than maximizing share price at any cost), I don't see much hope for the future of independent developers. That is if making a good living matters. Granted, to some $$$ is secondary to enjoying what you do, but those of us with kids to: put through college, help with healthcare, supplement income due to the crappy job market, etc, it matters more than personal satisfaction.
There's a reason for all that messy code. Much of it was bug fixes that real-world users needed.
More likely much of it is patches to the application where the temp developers that were brought in didn't understand the app, so the just hacked it until it worked. After many iterations of this, the code is nearly incomprehensible. Every project is different, but there are a lot more cases where a rewrite is appropriate than it's possible to convince management of.
I just completed project to add functionality to an old (15+years) Pro*C application(~ 50K loc). I was able to convince management to let me rewrite it in java rather than hack the already buggy codebase. The result was very satisfying. I was able to rewrite it in the same time that was originally allocated for the enhancement. The new code has not had a hiccup in over 3 months (it runs 24/7/365) as opposed to the old code that was a major headache for the support group.
This is how I did it:
First, I simply ported the C code directly to java, as much as possible, keeping the logic, variable names and structure the same as the original "C" application. Once that was done, it tested and tested until the results were identical to the original application (minus the crashes an bugs).
Then, I when through a refactoring of the application to restructure it from a procedural to an object oriented application, all the while, continuing to regression test to make sure nothing got broke in the process. Once I had the new code properly structured and performing well, I added some exception handling to increase the reliability, automatic recovery and support notification capability that were non-existent in the original application. At this point, I basically had a new application functionally equivalent to the old one, with better structure, in a newer technology and far more reliable than the original.
Finally, I added the new functionality that drove the original project scope. This was fairly easy given that I was very comfortable with the application structure by this time and the application was far more extensible that the original application structure.
Point being, there are cases (not all, but many more than you can convince management of) where a rewrite is the best approach both from a project cost as well as the quality of end product perspective.
I inherited a 15+ year old application about two years ago of similar size written in C (actually Pro*C) that had a long history of crashes (invalid pointers), memory leaks and incorrect results. I was tasked to add additional functionality to the application. I was able to implement the additional functionality, but because of the requirements of the project, I did not address all the structural defects in the application.
As a result, although the new functionality worked fine, the application still suffered for the "spaghetti" code of patches upon patches of years of various developers adding additional capabilities, but no one ever addressed the reliability of the application. The support group for this application was clearly frustrated with years of late night calls and hours and hours spent trying to correct errors.
About 6 months ago I was tasked with essentially "cloning" the application for new business purposes. I proposed porting the application to a newer, more modern language (java). It took a lot of selling (i.e. convincing management and other developers that the end result would run just as fast, be easier to maintain and have more reliability), but I was able to get them to buy off on it.
The rewrite was completed about 3 months ago and the results were better than i had hoped for. I was able to complete the rewrite in the same amount of time allocated for the original "enhancement" project. The application actually runs faster than the old one, has yet to crash (it runs 24x7), and the code is well structured and easy to maintain. We're now in the position that if/when another "enhancement" is requested to the old application, we can simply clone the new java version and completely replace the old app. Given the results of the last project, it won't be a hard sell (especially to the support group) to go the java route.
I know this is a long post, but the bottom line is that sometimes (more often than many realize), recoding an old application in a modern language and bringing it into the 21st century rather than patching old code can pay off dividends beyond the basic added functionality.
It was a grand experiment and it lasted surprisingly long. But the idealism of the founding fathers had long ago given way to inherent greed of the captains of industry. Capitalism had given way to corporatism over a century ago.
It was only a matter of time before the next shoe dropped.
The business playing field has long been tilted in favor of corporations whose only raison d’être is to maximize profits for their shareholders, the same shareholders who sell their shares in a nanosecond if they can turn a miniscule profit or limit their losses. They operate without the baggage of conscience or even the slightest inkling of compassion for real people, neither customers nor their employees. Prior to today, the tentative prohibitions that have existed on how corporations could use their power to influence the political landscape were only a nuisance, but now even those facades have been eliminated.
Just one more step on the way to Fascism. If anyone doubts that the US is heading in that direction, just read the definition http://en.wikipedia.org/wiki/Fascism . If that doesn’t sound like the right-wing agenda I don’t know what does.
Did anyone notice while the right was declaring Obama a socialist and the Democrats had a super-majority, nothing managed to get done. The minority party stood in the way and managed to block every step in every direction, eventually bogging the process down long enough for the corporate owned media to work its way with the mindless masses until eventually the polls turned against any possibility of a progressive agenda.
Now the super-majority is gone. Independents are now aligned with the right wing. The hopes for anything that might reign in the abuses of the insurance industry are all but gone.
And now, this ruling; Corporations are free to buy politicians like never before. Who is going to stop them? No one.
The party’s over.
All I can say to those of the right-wing persuasion is congratulations on your victory. But always keep in mind, be careful what you wish for because you might just get it.
I would think enough viewers switching to HTML5 sites because they get tired of reinstalling Windows due to viruses clobbering their machines might be just the drug to convince them.
Not ironic at all. If it weren't for a continuous stream of new viruses, McAfee would be out of business. What could spur more sales than a rash of new viruses. I'd be leery of clicking on any links from an anti-virus vendor site.
Oh - and if anyone wants to say the price of SSD storage will come down and surpass that of HDD storage? Well, maybe, but the problem there is that Moore's law is running up against the limits of Physics right now. THe state of the art transistor has a gate oxide thickness of 4 atoms, and a channel length of 13 atoms. Good luck with doing fractions of atoms, there might just be a few problems with that....:)
The atomic size limitations apply to HDDs too. I fail to understand your implication that more data can be packed into a mechanical, whirling set of magnetic plates than can be packed into a solid state circuit (even if we don't get below a couple atoms thickness)? So what if the physical dimensions of an SSD device "might" eventually need to grow to to be able to match the capacity of larger HDDs. SSDs have a lot of room to grow before they hit up against the (relatively gargantuan) physical dimensions of even a laptop HDD.
So typing slower or staring into space helps one assimilate the other guy's code? Having an extraordinary ability to retain previously encountered algorithms and apply them to new situations is a bad thing? The ability to conceptualize at a high level yet be able to distill it into well written, yet highly detailed source code quickly is a trait to be avoided?
I don't get it. Anyway, the point I was making was in reference to the term "uber programmer". I know application managers (that can barely write a line of code) who can recognize that a new application is similar enough to an existing one and that the code can be reused, but I wouldn't call them a "uber" programmer.
people who go rushing off to make new stuff when they don't have to aren't necessarily all that useful.
I agree. On the other hand, why would you bring in an "uber" programmer at all if the solution already exists?
That's just one of many, many articles on the subject. Educate yourself a little on the subject and I'm sure you'll come to the same conclusion.
Like religion and politics, IDEs are very much a personal preference and I've tried (and continue to try) just about all of them, but I haven't found any that are superior to Eclipse for day-in/day-out development productivity. Apple can keep their XCode and Objective-C. I've been force to use it for development as well and I gotta say, it's like going back 10 years. XCode is the most confining environment I've worked with in a long time. Objective-C is only still around for one reason - because Apple practically forces it down developers' throats. It should have died along with NextStep (it seems to be the worst of C++ and SmallTalk combined). Sure, you can use other languages and IDEs on OS X, but Apple makes it clear that XCode/Objective-C is the preferred development environment and it's the ONLY environment if you want to develop for the iPhone.
Developers making $$ on iPhone apps are few and far between. The odds are pretty slim that you can recoup your investment.
http://www.fiercemobileit.com/story/most-iphone-developers-dont-make-money/2009-06-17-0
or was that MS-DOS?
I've been doing backups by copying everything to my unlimited drive for years now. It's amazing - it never fills up!
/dev/null if using Unix).
Just type
copy Edit.* NUL
at your command prompt (or cp *
One day I'm gonna look to see how much data I have in that damn thing!
to the grateful un-dead so as not to be confused with The Dead?
Java will run on all platforms except (non-jail broken) iPhones, although even this can be gotten around via some tools (xmlvm, metismo, etc). BTW, java could technically run on the iPhone but Apple won't allow it (for a boatload of BS reasons, when in reality it boils down to greed and customer control). Just another reason to skip the iPhone.
Of course... Charmin may already have a patent on this...
I don't have a problem with a patent being granted on some new touch screen technology (such as a new capacitive or resistive technology), but a patent on using gestures, especially ones like pinch for zoom is ridiculous. Once the underlying hardware technology was available, the UI gestures were obvious and should not be patentable.
I'm thinking about writing an app to wipe my a$$. I better apply for a patent for using my a$$ to interact with a touch screen device before Apple patents that too. It blows my mind that a patent can be granted for something as obvious as using one's fingers to interact with a device. Seems that prior art for this was established when we climbed out of the primordial soup.
Um, idiots should not throw stones from their glass houses.
You're an independent software developer, not an independent contractor that develops software.
There are different types of independent developers, but maybe you can't see that with your tunnel vision.
ANY "independent" contractor that works for and by himself (i.e. does not have employees) gets hit by this. Most of the contracts I've seen are for 6-12 months and unless you can afford to hop around the country looking for work every 6 months, chances are you can't afford NOT to extend your contract with a happy customer that wants to continue your services.
I've been there and I had to work 80+ hours a week (sometimes more) just to keep more than one contract going at a time so I wouldn't either be out of work until the next contract, or accused of being an employee by the IRS.
What f&cking business is it of the IRS if I'm an employee or self-employed. Either way they get their damn money.
The point of TFA was not that it was impossible, just that the system's stacked against indies.
Maybe you like that.
As a former indy forced into submission, it pissed me off!
Oh right. As long as you don't mind working for $20/hr, even with 30 years of experience.
Lets see. I can make $20/hr as a independent (along with all the stress and uphill battles), or $65/hr as a corporate pig-dog.
Let me ask my wife which she would prefer I do.
Get real.
I was an independent contractor/developer for over 15 years and it was great. However, the dive in the economy and the items mentioned in the original post have squeezed things so much that large contracting organizations are swallowing up all the work and forcing independent contractors to roll over or hit the road. It doesn't matter what you know or how valuable to their clients. Decisions are made from the top of the organizations and middle management has little or no say about it.
I've been in software development for over 30 years and have always kept my skillset crisp and current. I've worked as W2 and 1099 over the years and I like 1099 much better (eg. no politics, focus on the task at hand rather than on corporate culture, more say in what and how I do things, etc.). However, unless corporations begin to operate like small companies (where the end product and customer satisfaction matters rather than maximizing share price at any cost), I don't see much hope for the future of independent developers. That is if making a good living matters. Granted, to some $$$ is secondary to enjoying what you do, but those of us with kids to: put through college, help with healthcare, supplement income due to the crappy job market, etc, it matters more than personal satisfaction.
100 Million??? Really? What the hell is it written in, Intel 4004 assembler code?
"I need a phone connection to be able to phone? What a scandal!"
That's why I use Vonage :)
There's a reason for all that messy code. Much of it was bug fixes that real-world users needed.
More likely much of it is patches to the application where the temp developers that were brought in didn't understand the app, so the just hacked it until it worked. After many iterations of this, the code is nearly incomprehensible. Every project is different, but there are a lot more cases where a rewrite is appropriate than it's possible to convince management of.
This is how I did it:
First, I simply ported the C code directly to java, as much as possible, keeping the logic, variable names and structure the same as the original "C" application. Once that was done, it tested and tested until the results were identical to the original application (minus the crashes an bugs).
Then, I when through a refactoring of the application to restructure it from a procedural to an object oriented application, all the while, continuing to regression test to make sure nothing got broke in the process. Once I had the new code properly structured and performing well, I added some exception handling to increase the reliability, automatic recovery and support notification capability that were non-existent in the original application. At this point, I basically had a new application functionally equivalent to the old one, with better structure, in a newer technology and far more reliable than the original.
Finally, I added the new functionality that drove the original project scope. This was fairly easy given that I was very comfortable with the application structure by this time and the application was far more extensible that the original application structure.
Point being, there are cases (not all, but many more than you can convince management of) where a rewrite is the best approach both from a project cost as well as the quality of end product perspective.
As a result, although the new functionality worked fine, the application still suffered for the "spaghetti" code of patches upon patches of years of various developers adding additional capabilities, but no one ever addressed the reliability of the application. The support group for this application was clearly frustrated with years of late night calls and hours and hours spent trying to correct errors.
About 6 months ago I was tasked with essentially "cloning" the application for new business purposes. I proposed porting the application to a newer, more modern language (java). It took a lot of selling (i.e. convincing management and other developers that the end result would run just as fast, be easier to maintain and have more reliability), but I was able to get them to buy off on it.
The rewrite was completed about 3 months ago and the results were better than i had hoped for. I was able to complete the rewrite in the same amount of time allocated for the original "enhancement" project. The application actually runs faster than the old one, has yet to crash (it runs 24x7), and the code is well structured and easy to maintain. We're now in the position that if/when another "enhancement" is requested to the old application, we can simply clone the new java version and completely replace the old app. Given the results of the last project, it won't be a hard sell (especially to the support group) to go the java route.
I know this is a long post, but the bottom line is that sometimes (more often than many realize), recoding an old application in a modern language and bringing it into the 21st century rather than patching old code can pay off dividends beyond the basic added functionality.
It was a grand experiment and it lasted surprisingly long. But the idealism of the founding fathers had long ago given way to inherent greed of the captains of industry. Capitalism had given way to corporatism over a century ago.
It was only a matter of time before the next shoe dropped.
The business playing field has long been tilted in favor of corporations whose only raison d’être is to maximize profits for their shareholders, the same shareholders who sell their shares in a nanosecond if they can turn a miniscule profit or limit their losses. They operate without the baggage of conscience or even the slightest inkling of compassion for real people, neither customers nor their employees. Prior to today, the tentative prohibitions that have existed on how corporations could use their power to influence the political landscape were only a nuisance, but now even those facades have been eliminated.
Just one more step on the way to Fascism. If anyone doubts that the US is heading in that direction, just read the definition http://en.wikipedia.org/wiki/Fascism . If that doesn’t sound like the right-wing agenda I don’t know what does.
Did anyone notice while the right was declaring Obama a socialist and the Democrats had a super-majority, nothing managed to get done. The minority party stood in the way and managed to block every step in every direction, eventually bogging the process down long enough for the corporate owned media to work its way with the mindless masses until eventually the polls turned against any possibility of a progressive agenda.
Now the super-majority is gone. Independents are now aligned with the right wing. The hopes for anything that might reign in the abuses of the insurance industry are all but gone.
And now, this ruling; Corporations are free to buy politicians like never before. Who is going to stop them? No one.
The party’s over. All I can say to those of the right-wing persuasion is congratulations on your victory. But always keep in mind, be careful what you wish for because you might just get it.
I would think enough viewers switching to HTML5 sites because they get tired of reinstalling Windows due to viruses clobbering their machines might be just the drug to convince them.
Not ironic at all. If it weren't for a continuous stream of new viruses, McAfee would be out of business. What could spur more sales than a rash of new viruses. I'd be leery of clicking on any links from an anti-virus vendor site.
Oh wait... Java applets already do all this.. maybe we just need to dump flash!
:)
I'll wait while the Java bashing commences.
Oh - and if anyone wants to say the price of SSD storage will come down and surpass that of HDD storage? Well, maybe, but the problem there is that Moore's law is running up against the limits of Physics right now. THe state of the art transistor has a gate oxide thickness of 4 atoms, and a channel length of 13 atoms. Good luck with doing fractions of atoms, there might just be a few problems with that.... :)
The atomic size limitations apply to HDDs too. I fail to understand your implication that more data can be packed into a mechanical, whirling set of magnetic plates than can be packed into a solid state circuit (even if we don't get below a couple atoms thickness)? So what if the physical dimensions of an SSD device "might" eventually need to grow to to be able to match the capacity of larger HDDs. SSDs have a lot of room to grow before they hit up against the (relatively gargantuan) physical dimensions of even a laptop HDD.
I don't get it. Anyway, the point I was making was in reference to the term "uber programmer". I know application managers (that can barely write a line of code) who can recognize that a new application is similar enough to an existing one and that the code can be reused, but I wouldn't call them a "uber" programmer.
people who go rushing off to make new stuff when they don't have to aren't necessarily all that useful.
I agree. On the other hand, why would you bring in an "uber" programmer at all if the solution already exists?