Primitive tools === primitive programmers?
One think that I keep on wondering is why a toolset of most web programmers is so primitive. Already in the 90s (80s) we had these great IDEs that enabled debugging with breakpoints, watches, backtracking, statical analysis of the code, and, in addition, checked style, provided auto-complete and extensive help documentation. In the world of desktop applications, where we have Microsoft Visual Studio and Eclipse, nobody would even dare to think to develop code in Vi or Joe. But in the world of web applications, some developers are even proud of their Vi expertise.
I have couple competing theories how this situation came about:
- programmers originating in LAMP don’t know better,
- there’s something inherently wrong with development of server side applications on client side,
- I’m ignorant myself of great tools that could improve my work practice and that of my coworkers
Please, share your thoughts in the comments.
Free your technical aesthetic from the 2010s
A rejection of the rejection of the 1970s. James Hague wrote a wonderful, vaguely controversial essay “Free your technical aesthetic from the 1970s.
- Microsoft Visual Studio 11 embraces devops (infoworld.com)
- Microsoft Woos Joe Developer with New Visual Studio (wired.com)
- How achievements can improve software quality (abahgat.com)
people love challenges.
I am one of joers.
Now… there are a few reasons why IDEs-for-web haven’t touched me much:
– in dynamic languages a lot of information that IDE would need to be really smart is simply not there at edit time, only in run-time. deep static analysis might help… or not, you just can’t expect the editor to know what the real type of the variable you are working on will be.
– it’s consistency that makes you efficient. you can develop locally or remotely, you know you will be just as efficient. most of the IDE-used programmers I see are pain to watch when they need to do something on the server quickly. It’s so different workflow that it kills their productivity.
– I haven’t originated in LAMP – I was growing up when Borland Pascal 7.0 was all the rage in IDEs. I still haven’t found an IDE editor that would make you as efficient as BP7 was. It was so awesome that anything that doesn’t provide that integration and polish just seems sluggish. I was using rhide for a long time when I worked with C++ code under DOS.
– I prefer small laptop, which means underpowered. And eclipse or anything too visual just doesn’t fly. Joe on the other hand, you know it will work consistently everywhere.
– change – I tried Anjuta, Eclipse, Rhide, PyDev, Delphi and some other editor I forgot. However joe stays the same all the time, on all platforms. no need to learn new commands. this is partly laziness, partly convenience
– I think a puppy dies every time a developer touches the mouse while coding 🙂 And I can’t be responsible for deaths of thousands of puppies a day
– I once tried Visual Studio. Really nice piece of work. Would love to use it, but I am not doing work on windows. And again … it makes you slow on the server.
All in all… I’d love an editor as polished as Borland Pascal 7.0 IDE . I’d give it a try immediately.
I’d be interested to know which editor to try out. maybe it will work out this time 🙂
I tend to agree.
IDEs are very cumbersome and most of the benefits they give are really relevant with staticly typed languages.
Moreover, the ability to edit code directly on remote servers can be a significant advantage for web application developers without a local environment, albeit I don’t consider it generally a safe habit.
I can only agree that Borland products still serve as a role model of what a good programmer tool should look like. I vividly remember my excitement when I rode home on a bus with a fresh copy of an original Borland Pascal 6.0 box.
Out of other Andraž’s arguments, I can only relate to the consistency of development locally and on the server. But seriously, debugging software using print statements in 2012? I feel something isn’t right here.
Yeah, it seems weird. On the other hand if compile time is zero and run time is small, then putting in a print statement is not entirely different than setting a watchpoint. You get to it very quickly and can iterate quickly. Basically as you reduce the time to compile&run, the need for special tool like debugger gets slightly less valuable (I am not saying it’s not valuable, it hugely is when it works, just it’s less important when you can get the same result very quickly by taking the print path).
If the processes are long and they freeze, you need to attach gdb to them. Now the issue with our current toolset is that gdb doesn’t have python inspection capabilities. But as we migrate to 7.0 this is going to be solved too…
I am still waiting for someone to point me to non-clicking text-mode IDE for LAMP 🙂 I can live without autocomplete, just a really good editor + debuger in one would do (for starters).
I think we identified a huge itch that developers of web application have nowadays. I think this is a very nice opportunity for someone willing to scratch it 🙂
Pingback: So you want to be a programmer | My Corner of the Web
It’s not a huge itch and you have PyCharm for most of the stuff you dream about.
My main problem with this post is that you extrapolate personal feeling to everyone. I don’t use IDEs because I daily need to be able to open and switch between files instantly, not wait for IDEs to load and switch projects. There are tasks like refactoring that are certainly nicer to do in a good IDE, but I rarely refactor so widely that I would need help of an IDE. It is great though that my editor (vim) can be found everywhere. It is also signficantly more powerful than you seem to imagine, but that’s not really the point.
My point is that when you see a majority of professionals in a field do something differently than you would, then it’s probably not the best idea to attribute this mostly to ignorance. They just might work differently than you and hence value tools that fit their ways better.
If I define the field of discussion as programming in general, than large majority of professionals in this field use either Microsoft Visual Studio or Eclipse (and its derivatives). My wonder is about why are web developers so different from other developers with the regard to the tools they are using.
Pingback: Do languages shape IDEs or IDEs shape languages? | @abahgat's blog