I am looking to write a small web app this weekend. What ideas for web applications would get you excited?

Since I started this blog, I have gotten quite a few emails asking me “What programming languages do you recommend for X?” I often finding myself writing something along the lines of
I would honestly recommend python. Something about me being biased because I know and love it. Usually say something about the competing technology with a back handed insult. Also if they are starting out I would recommend a language that enforces better OO (Object Orientated) practices than python, like Java (don’t hate me but it’s true).
Then I go on to say something like you should try to learn one of each language type compiled, scripting and functional language. Never pin hole yourself. Always try to be aware of the differences when encountering these languages
Keep in tune with trends that appear in fields of interest (web development, mobile) but you don’t have to learn every new “IT” language.
Keep reading the blog or else statement.
Kind Closing
Name goes here.
So I have decided to write this blog post to safe my readers time, as well as keep my sanity. Don’t get me wrong I love hearing from my readers. Its just I am writing the same email over and over. You know who you are. Grr.
Again these are just my opinions and the only thing I do professionally is being a bad ass aside from writing code.
Web Development
- Dusty’s Pick - Python/Django
- Dying Technology - PHP
- Others - Ruby/Ruby on Rails
Why you ask? You learn design patterns like MVC which is the basis for django and ruby on rails. PHP is an ugly language hard to learn, but it does get the job done. I feel though these other technologies are growing and allow for easier and quicker development experience.
Integrated Development Environment
- Dusty’s Pick - Eclipse
- Pro Bros - Vim/Emacs
- Windows Boys - Notepad++
You should be a master in one of these. It increases your productivity as well as increased ease when coding in some languages. I would recommend for beginners Eclipse! Why? Because of Twilight and the fact that it has extensive plugin architecture that includes almost every development language. Older guys swear by Vim/Emacs, its has big learning curve but people swear by it afterwards. Notepad++ for your portable use and allows you to download it quick and to comfort zone for off site development.
Compiled/Packaged Languages
- Dusty’s Pick - Java
- OS and Applications - C/C++
- The Other C - C#
The reason I recommend Java easiest to learn quickly and it creates a clear and concise way to show the power of OO programming without the clutter and mess of syntax that C/C++ are known for. Now, on the other hand for “performance” reasons most programs you see are written in either C/C++ which have interesting ways about going compiling from the sources you will end up writing yourself which is a skill within itself. Writing make files and dependency management. So learning them for that added benefit is worth it. I don’t know much about C# but people I know love it so here is a generic Wikipedia link.
TL;DR
There is so much, where should I begin? Forget all that I say pick one and stick with it, until you can plan out how to solve every problem from start to finish with thinking crap how am I going to do that. Once you reach that level, switch languages. But always ask yourself how would I do it in that language, what about this one? YA DIGG?
Discussion
Wednesday, January 26, 2011
I would honestly develop 10 times longer and compete with my friends. If the industry want to boost productivity they would most definitely start working on this IDE. Then you can compare and hire developers based on their achievements as a function of what they had produced as supposed to what they claim to have done.
Credit goes to whiletrue
Here are a few I thought of:
- The Untouchable – Define a 1000 private class variables!
- The No Lifer — Maintain an active IDE window for 24 hours!
- The Confuser — Write a method with over 1000 lines no comments.
Discussion
Monday, December 27, 2010
When most people think about legacy code the mind tends to go to things that aren’t really reflecting what legacy code is, i.e super old code that does amazing things. But in actuality what most people aren’t aware of it’s code with very little to no testing that was poorly implemented some would think that there was a correlation. Hmm?
Now working full time on a project, I have had my bouts with legacy code everyday. Although it wasn’t written too long ago, nor is it poorly implemented. But the combination of my naivety and lack of testing. Results in the same yet undesired feeling; just add water.
I would summarize legacy code in the following:
- Code without tests
- Code that you have been given
- Code either you or no one understands.
For those of you who haven’t worked on legacy code, let me give you a small allegory to the pleasure that it is working with legacy code. Its more or less like swimming in a vast murky sea (legacy code) of sharks (horrible horrible breakage), that react to movement (code changes). So you jump in with your good intentions and begin changing code that is tightly coupled and poorly documented.
Then you start realizing why software engineers get paid so much, the real realization comes when you realize that you aren’t being paid enough. Sad Panda.
So what can you do? Honestly only a few things will prevent you from having to deal with supporting legacy code as well as having to deal with others code, in this beautiful state.

Test your code. Comment. Make the world a better place.
If you have done any of the following you have produced legacy code:
- Wrote code without automated tests
- Wrote code without commenting
- Wrote code in a convoluted way
- Wrote code without refactoring at least once
- Wrote code while hungry or impaired in anyway. (Yes, being a loser counts)
- …
I have done this, you will do this, we all do it. When we realized this we will then become a master race, and all own our own start ups, and move to silicon valley.
Until then, try to keep code you write clean, simple, documented, and tested.
Discussion