Flash does kind of suck.
Having built towncry in Flex, Flash's web interface suite, I am forced to agree with almost every point in this blog post. For an app which was more of a widget than anything else it made sense - there was a big premium on a clicky-draggy clean interface which was towncry's differentiator - but we had to do some work arounds to support RESTful URIs so you could link to a specific event. This also helped the SEO issues, but it was definitely some time invested in that work around.
Pretty much everything was an integration project... I spent 6 months on towncry, and it was core-functionality enabled after 2.
I think Flex was the right call for towncry, and I am an evangelist for my policy of picking the best tool for each job (which usually means learning a new language every project) but I wouldn't use Flex or Silverlight unless I knew exactly what I was getting into. It makes little apps very slick, but a lot of things you take for granted in non-sandbox environments are major surgery.
While I'm talking about my "new project, new tool selection" policy, here are my get what you paid for them thoughts. I've built significant apps with all but PHP and Python, but I am a wantrepreneur, not an architect. I groan whenever Paul Graham (who I mostly admire) says it, but "hacker" is an apt description. Which is an underrepresented voice in the platform debates... as an entrepreneur all you care about is getting your 1.0 release out as fast as possible, hiring talent, and whether there are major scaling problems which will hinder your quest for world domination.
Anyway, the platforms according to me:
-If you don't know anything, learn PHP. It seems to be the easiest to get into. Disclosure: I have written small things with it, but no major apps.
-If you have some programming experience, learn Ruby on Rails. It is a very fast vehicle to get up and running with your 1.0. It's also very hot right now. Twitter is doing much better on the scaling front, too. It's got my seal of approval for most web startup applications... but use -d mysql... sqlite hasn't impressed me.
-If you are an experienced Java or Perl guy/gal who wants to get into web development, I'd find an excuse to learn Ruby on Rails. Your MVC experience will come in handy. If you are trying to port a heavyweight Java backend to the web, stick with Java for the interface. Java isn't fun to write, but it'll get the job done. I haven't written a web app in Perl or known anyone else personally who has since 1999, which is to say don't do it, Grampa. I don't care how far it has come.
-If you're building enterprisey software, .NET isn't so bad. The problem for startups is the licensing cost and the derision of the cool kids, but I don't know of a problem it can't solve. C# is more fun to program in than Java, no contest. Visual Studio is nice, Reporting Services is powerful, and SQL Server is more programmer-centric than the alternatives. The cool kids making fun of you is a more significant downside than it sounds though. Good luck hiring startup talent, and getting buzz isn't going to be quite as easy. The community has a significant number of douchebags. Getting started isn't that expensive, but scaling with the Borg gets steep in a hurry. I have written hundreds of thousands of lines of .Net code, but it'd have to be a perfect fit for me to create a new startup with it now. It'd be enterprisey, with heavy reporting requirements, or something I could use our exisiting codebase for.
-My Python experience consists of a helloworld for GAE (Google App Engine) and non-development roles on two Python projects. All I can say is whitespace is not code and should not be treated that way. I might look past that to mess with GAE in the future. The consensus seems to be that Python + Django is like Ruby on Rails with more libraries... which is a good thing.
-Flex/Sliverlight have been covered above. Actually programming in Actionscript was fine, and in a very narrow requirement Flex can be the right tool.
-Everything else has a marginal slice of mindshare, and therefore you're going to have problems finding people to come work for you. In my opinion you are making a huge mistake picking Lisp, Merb (WTF?) or any of the other weird languages you see on Slashdot for your web startup.
I am sure I forgot to mention why your language is the perfect tool for every imaginable project, so you can preemptively add "____ language is teh best, because it supports strongly typed polymorphic template caching!!1" to the comments.
Pretty much everything was an integration project... I spent 6 months on towncry, and it was core-functionality enabled after 2.
I think Flex was the right call for towncry, and I am an evangelist for my policy of picking the best tool for each job (which usually means learning a new language every project) but I wouldn't use Flex or Silverlight unless I knew exactly what I was getting into. It makes little apps very slick, but a lot of things you take for granted in non-sandbox environments are major surgery.
While I'm talking about my "new project, new tool selection" policy, here are my get what you paid for them thoughts. I've built significant apps with all but PHP and Python, but I am a wantrepreneur, not an architect. I groan whenever Paul Graham (who I mostly admire) says it, but "hacker" is an apt description. Which is an underrepresented voice in the platform debates... as an entrepreneur all you care about is getting your 1.0 release out as fast as possible, hiring talent, and whether there are major scaling problems which will hinder your quest for world domination.
Anyway, the platforms according to me:
-If you don't know anything, learn PHP. It seems to be the easiest to get into. Disclosure: I have written small things with it, but no major apps.
-If you have some programming experience, learn Ruby on Rails. It is a very fast vehicle to get up and running with your 1.0. It's also very hot right now. Twitter is doing much better on the scaling front, too. It's got my seal of approval for most web startup applications... but use -d mysql... sqlite hasn't impressed me.
-If you are an experienced Java or Perl guy/gal who wants to get into web development, I'd find an excuse to learn Ruby on Rails. Your MVC experience will come in handy. If you are trying to port a heavyweight Java backend to the web, stick with Java for the interface. Java isn't fun to write, but it'll get the job done. I haven't written a web app in Perl or known anyone else personally who has since 1999, which is to say don't do it, Grampa. I don't care how far it has come.
-If you're building enterprisey software, .NET isn't so bad. The problem for startups is the licensing cost and the derision of the cool kids, but I don't know of a problem it can't solve. C# is more fun to program in than Java, no contest. Visual Studio is nice, Reporting Services is powerful, and SQL Server is more programmer-centric than the alternatives. The cool kids making fun of you is a more significant downside than it sounds though. Good luck hiring startup talent, and getting buzz isn't going to be quite as easy. The community has a significant number of douchebags. Getting started isn't that expensive, but scaling with the Borg gets steep in a hurry. I have written hundreds of thousands of lines of .Net code, but it'd have to be a perfect fit for me to create a new startup with it now. It'd be enterprisey, with heavy reporting requirements, or something I could use our exisiting codebase for.
-My Python experience consists of a helloworld for GAE (Google App Engine) and non-development roles on two Python projects. All I can say is whitespace is not code and should not be treated that way. I might look past that to mess with GAE in the future. The consensus seems to be that Python + Django is like Ruby on Rails with more libraries... which is a good thing.
-Flex/Sliverlight have been covered above. Actually programming in Actionscript was fine, and in a very narrow requirement Flex can be the right tool.
-Everything else has a marginal slice of mindshare, and therefore you're going to have problems finding people to come work for you. In my opinion you are making a huge mistake picking Lisp, Merb (WTF?) or any of the other weird languages you see on Slashdot for your web startup.
I am sure I forgot to mention why your language is the perfect tool for every imaginable project, so you can preemptively add "____ language is teh best, because it supports strongly typed polymorphic template caching!!1" to the comments.

0 Comments:
Post a Comment
<< Home