Language to use for web-development?

Started by
23 comments, last by JackOfAllTrades 12 years ago
Help - which language and software would you recommend for my web-development needs?

So I'm starting a website, and wanted to know which language to look for when hiring someone. I'll need slideshow-widgets, loading another page determined by the timestamp (for daily news), and the ability to update an on-site spreadsheet. Later-on I might need to add a forum. The purpose of the site is for gaming, and if there's a host that already comes with this (such as guildlaunch.com) then please refer me to it! I will not be running the server myself.

Edit: Thank you for the feedback. After looking at some CMS I decided to migrate back to my bases and go back to WikiDot.
Advertisement
If you're going to be hiring somebody to do this for you, then I'm sure they would know what languages to program this in for you. You should probably focus more on what you actually want, rather then how to get that.

Anyway, just for general information, one way to do this would be HTML, JavaScript, PHP and MySQL, but there are many other options.
wanted to know which language to look for when hiring someone[/quote]

"I'm building a house so I want to know what color hammer should the carpenters be using"

Or, it's the wrong question to ask and one of my biggest annoyances when dealing with clients.

First, define clearly just the functionality you need, something you already did. Make a hard list of the features (slideshow, external news feed, table/calendar, ...). Define just the functionality, don't go into any technical details.

Next it's a matter of trade-offs. Language is inconsequential, what matters is the platform and developer's scope as well as budget.

1) PHP ecosystem: Wordpress/Joomla - proven stacks, easy, even free hosting, coders are dime-a-dozen. For each of those, plugins that do exactly what you want likely exist. Downside: dime-a-dozen coders, most of which, when faced with something that isn't available as a plugin conclude that "it cannot be done". A reasonably stable ecosystem, definitely outsourcing choice #1. Hardest part is filtering out good developers who don't come cheap.

2) Python (Django perhaps others) - less mature than (1), but slightly higher coder quality, though less off-the-shelf parts. Hosting is slightly less available, but it is a better fit for something like AppEngine, though that is not necessarily a pure win. Somewhat of a middle ground, often used for in-house projects with dedicated teams.

3) Ruby On Rails - by far the most hyped solution, works magically in some cases, is a clusterf*** in others. Longevity is a problem - what works today may require a complete rewrite 6 months from today when next version is released. Mostly suitable for ongoing projects with hands-on developer/team, less suitable for on-off projects. Hosting may be expensive or require dedicated/VPS server.

4) Custom development: Unless you get developer buy-in to take over the full project management not a viable option. You get most flexibility, anything can be done, but "cannot be done" does not exist - anything can be done and often fairly trivially. But developer/team needs both coding as well as design/art expertise. Most likely not an option for cheap projects

5) Experimental - node.js/mongodb/hype-of-the-month. Powerful in hands of experienced developer, but requires order of magnitude more work. Definitely not recommended for outsourced work (rates will be through the roof), viable for in-house development when developers have a stake in the project. A ton of unexpected gotchas, unstable ecosystem, but most importantly, you are next to guaranteed to never encounter any problems these projects attempt to solve. Good if you wanted to get your hands dirty, but less for outsourcing.

6) If you need a guild site (or something specific like that), consider going to people who build just that. They can get stuff done quickly, but there is "cannot-be-done" again.

7) There is .Net. Just for sake of completeness, between Azure and alternatives, the ecosystem is mature, but expect to pay a premium on good developers - once due to MS tax, secondly because of flood of certified MS developers who can only function in highly structured enterprise environment or as on-call consultants. If hiring a full team, .Net is a very solid choice and perhaps the most stable by far. Once deployed, the project is almost guaranteed to work until EOL.


Design - good developers cannot be good designers and vice versa. If you're not in control of the project, you'll want a programmer first and have them buy/license a design or use a helper library. In my experience, hiring a designer who also does coding on the side produces overall inferior results. Just be aware that results will often be somewhat generic, even if looking modern. Good design is considerably more expensive than good code.

UX (user experience/interaction design/SEO) - Unless you're building a viraly marketed freemium site, these won't add anything of value to your users but will inflate your bill unreasonably.

(...)good developers cannot be good designers and vice versa.(...)


Did Leonardo Da Vinci tell you that?
-~-The Cow of Darkness-~-


Did Leonardo Da Vinci tell you that?


Da Vinci was an artist, he never built anything. Today he would be a concept artist.

But both design and programming are full-time jobs. The difference between dedicated specialist in each field and someone who does both is staggering.

For example, a full-time designer would spend two weeks on nothing but design prototypes, producing dozens alternatives and evaluating them. In same time, someone doing both roles might come up with one or two. Difference is far bigger than a factor of two, it comes closer to tenfold.

Da Vinci was an artist, he never built anything. Today he would be a concept artist.

Da Vinci was just as much an engineer as an artist. He did just as many studies/blueprints in his drawings as he did more aesthetic drawings. He was also employed as an engineer for a decent amount of time.

Most likely today he would have been talked out of pursuing such a broad knowledge base making it impossible to say what he would be. It's not that absurd to think he could have been any number of things both scientific and artistic.
Without going too much offtopic, you realize that in the middle ages and especially the Renaissance, people spoke 2 or 3 languages fluently and were experts in one or more domains of knowledge. Then again, kids nowadays need Barney and SpongeBob to tell them how to feel and be nice to others. Meh.


Ontopic: OP, you should really be looking at CMSes (as Antheus mentioned) instead of languages.

Beginner in Game Development?  Read here. And read here.

 


Without going too much offtopic, you realize that in the middle ages and especially the Renaissance, people spoke 2 or 3 languages fluently and were experts in one or more domains of knowledge. Then again, kids nowadays need Barney and SpongeBob to tell them how to feel and be nice to others. Meh.


Ontopic: OP, you should really be looking at CMSes (as Antheus mentioned) instead of languages.
without going too too much offtopic, did ALL people speak 2-3 languages? Including peasants, soldiers, children slaves?

Leonardo was a genius at mechanisms, but was he an expert in other fields essential to actually build something? I guess not, many of his inventions wouldn't have worked with materials available at that age. Some of them wouldn't work with today's materials maybe.
<offtopic>
[indent=1]

Leonardo was a genius at mechanisms, but was he an expert in other fields essential to actually build something? I guess not, many of his inventions wouldn't have worked with materials available at that age. Some of them wouldn't work with today's materials maybe.

[indent=1]There is an event that occurred during the enlightenment, which I like to nickname the 'knowledge singularity'.

[indent=1]It's the point where the sciences start to diverge, and become distinct disciplines from Philosophy. In effect, up to that point the quote-unquote "philosophers" had necessarily been experts in many, many diverse topics, but with the explosion of scientific knowledge it ceased to be feasible for one person to master so much knowledge. Leonardo Da Vinci is a good example of the earlier jack-of-all-trades approach, and from what I understand he did have a fair background in engineering, etc. in addition to art. For artists in the present age, to follow in his footsteps is not at all trivial.
</offtopic>

In reference to Antheus' giant list of software stacks, you seem to have left out the Java stack. In many ways it has similar pros/cons to the .NET ecosystem, although my impression is that both developers and hosting providers are easier to come by for Java.

Tristam MacDonald. Ex-BigTech Software Engineer. Future farmer. [https://trist.am]


In reference to Antheus' giant list of software stacks, you seem to have left out the Java stack.


I have never encountered projects like this that would use Java. I can't even think of a single outsourcing deal involving Java that would not be an internal enterprise-like project.

So while I did forget Java, it's only because when thinking back while writing, it did not come up even once.

There's also a certain culture surrounding Java which means that public solicitation for help simply won't yield desired results, which is likely why it's not done. Instead, it's done through existing network or through formal outsourcing bidding process.

Another factor is that Java is uncool and boring, even absurdly so. C#/.Net is getting so much more enthusiasm these days, so it's simply not a list of choices that crosses one's mind. All of this is a strong counter-indicator when trying to push things on web, where other ecosystems offer so many more pre-packaged and reusable up-to-date libraries and helpers. Even enthusiastic blog posts about Java these days seem to be stuck in 2005.

Not saying Java ecosystem isn't suitable, it's just... boring and quaint.

This topic is closed to new replies.

Advertisement