As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I have tons of experience with both Rails and Django. I now have some spare time to do some learning. Which emerging web development framework I should learn? Thanks!
To be honest: Just pick one. There is no right way to learn such stuff. The web is evolving in a chaotic way, what is good today might be bad tomorrow.
And no one can give you the answer as everyone has different experiences and preferences.
May advice would be: Pick one you have heard of and evaluate it against those you already know. What are the weaknesses, what are the strengths? What are advantages and disadvantages for you as programmer if you use it? If this involves to learn a new language, even better. Maybe this language follows other concepts/paradigms. It will "widen your horizon".
In the end, what makes you a good programmer is not, that you know as much frameworks, languages, whatever as possible, but that you understand the concepts and that you can apply them easily to the new/unknown.
To get to know which frameworks are available in general, this is not the right places to ask IMHO (-> Wikipedia).
Nobody than you can decide what you should learn, it heavily depends on your background and interests. You don't have to be afraid of learning something "wrong". Every bit of knowledge is useful in the end and will contribute to your overall understanding of the techniques.
asp.net mvc.
Will get you some perspective from the strongly typed world...
Here are two "low-level" frameworks, that I found really interesting to do stuff with:
web.py, which claims to be the "Pythonic" way of doing web related stuff in Python (has even a positive quote from Guido van Rossum)
Node.js, that uses Google Chrome's V8 JavaScript engine for serverside JavaScript
Both are "low level" in the sense that they don't provide as much features as Django or Rails but leave you with a maximum of freedom to code your way in the respective language.
I would recommend ZK if you're interested in AJAX frameworks.
Take a look at the Agile Platform by OutSystems.
You can download the free version at http://www.outsystems.com/download and follow the interactive tutorials.
Cheers
Michel
Disclaimer: I work at OutSystems
You don't say anything about what language, but for something really different, you could try Nitrogen or Erlyweb written in Erlang. I am not saying these will be the "next" frameworks, but they sure should be!
Zend seems to be the choice in the PHP world. Not that I'd recommend anyone to learn PHP, mind you...
If you want to try something that is oriented towards building the kind of complex interactive applications that would be a nightmare to build in Rails or Django, my recommendation is Seaside
Zend PHP framework.
Php is the most used programming language on the internet and ZEND framework is the most mature framework for PHP.
Instead of looking at yet another server-side framework, how about a client-side framework? Web development is gradually moving towards the client. Being able to build web apps that run in offline mode will be a required skill before you know it.
Try building a web app with dojo or extjs, using the server only for hosting index.html, a bunch of js files, and a few web services. Make the entire page generation happen in javascript. For bonus points, skip server-side logic entirely, and build an app that stores data locally, using the server only as a static file store.
Related
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 6 years ago.
Improve this question
Sorry about my question, I know that this is a stupid one. I want to begin in game dev, where should I start? Should I start with libGDX, Love2D or with Monogame. I know how to program in this languages (JAVA, LUA and C #). I just wnat an opinion from those who have more expirience than I. Please, help me. Thank you
I'm afraid the answer to questions like these is "It depends."
There are several factors you'll want to consider:
Do I know the programming language?
Does it support the platforms I want to put my game on?
How complex is my game?
How big/present is the community?
In full disclaimer, my experience has primarily been with libGDX and Unity, with a smattering of SFML.
Programming Language
Learning to create games becomes a lot easier if you already know how to program, but only if you know the language you're writing the game in. For example, I'm most knowledgeable with Java, and while C# is similar in many regards, I still lose a lot of time in Unity to understanding the quirks of the language.
If you know Java, go libGDX
If you know C#/.NET, go Monogame
If you don't know how to program, Lua is probably the easiest to pick up (although you might also consider a tool like GameMaker).
Platforms
Honestly, this is becoming less and less of an issue as more interpreted languages are supported on more platforms. It is worth noting that some frameworks make it easier to be cross-platform than others. For example, libGDX provides a tool which generates all the Android/iOS/HTML template code for you when you create your project.
Targeting all PCs: I recommend libGDX. MonoGame and LOVE also provide cross-platform support, but in my limited experience, Java tends to provide better cross-platform support as a language- it's been doing it for a long time.
Console Platforms: Of the three, I recommend MonoGame. To my knowledge neither libGDX nor LOVE support consoles.
Web Platforms: I recommend libGDX, as you can export your game as a web app powered by GWT.
Complexity
The more complex your game is (in terms of computation, graphics, physics, etc.), the more sophisticated a game engine you require. Conversely, the simpler your game, the more those shiny game engine features are going to get in the way. Another hint here is to look at what published indie game developers have used (Bastion is a good game that was written in MonoGame, so you know it works).
Complex: Go with libGDX or MonoGame. These languages are typically more performant than Lua.
Not Complex: If you're just learning to program, then LOVE might be a good place to learn the basics, although you'll still probably want to move up to a more robust game engine.
Community
Especially when you're getting started, community is important. You need a bunch of friendly people who can help answer your questions or look at your buggy code with you. Rather than try to find a way to measure involvement, let me give you an example of some things to look for:
IRC Chat: An active IRC imho is an excellent way of knowing that there is a helpful community.
Forums: If you look at the forums and see that the last post was in 2014, that's a pretty good indicator that the community is small or dead.
Game Galleries: This gives you an idea of how many people are using the library, and what they were able to do.
StackOverflow Activity: The more questions you see on SO around that game engine, the more people are likely using it, which means the larger community it is likely to have.
Hopefully this helps- there are dozens of other game engines out there (many of which might fit your needs better than these three), but we'll need more details to go on in order to give a good recommendation.
I'm a newbie to web development (although I have built basic sites long ago using HTML, CSS, hacked various CMS's etc) and was wondering what language and associated framework is best to go with for a data driven web service with a dynamic UI (i.e. AJAX-ey effects) which I hope will scale at some stage in the future. I am fairly proficient in iOS development so am comfortable with Object Orientated development and the Model View Controller paradigm. Any advice and/or thoughts would be greatly appreciated.
Don't learn a language by learning a framework. Do basic non-framework programming in your language of choice first. THEN jump into the framework. Otherwise you're laboring under the double burden of unfamiliar language AND unfamiliar environment.
Basically, learn to drive first, THEN pimp out your ride.
If you're familiar with the Cocoa libraries, you might consider using Sproutcore which has a design that is highly informed by Cocoa. It also has the added bonus of being rather forward looking (aka: the new hotness) and is at the point of becoming a serious tool (ie: Apple uses it for mobile.me ) but still new enough that it is under active development by excited, passionate and skilled developers.
Also, as an aside to everyone advocating learning the basics. For many of us, the best way to learn something well is to have a real project and learn by building. Sproutcore seems like a good option for someone familiar with iOS development.
The easiest framework in my opinion is CodeIgniter and the docs are fantastic but this is really a subjective question.
I agree with #Marc B, first master your language, then you could start using a framework.
as a language the two obvious choices are either asp.net, or php, both have their advantages and disadvantages... you have some reading to do, a simple google search will provide you with plenty of info. there is no one size fits all in this department. look at some code examples, see what you feel comfortable about.
http://en.wikipedia.org/wiki/Comparison_of_web_application_frameworks
Since we are ambitiously aiming to be big, scalability is important, and so are globalization features. Since we are starting out without funding, price/performance and cost of licences/hardware is important. We definitely want to bring AJAX well present in the web interface. But apart from these, there's no further criteria I can come up with.
I'm most experienced with C#/ASP.net, PHP and Java, in that order, but don't turn down other languages (Ruby, Python, Scala, etc.).
How can we determine from the jungle of frameworks the one that suits best our goal?
What other questions should we be asking ourselves?
Reference material: articles, book recommendations, websites, etc.?
For me, the most important things to consider were:
Fantastic lead developers who I trust to keep working on the project.
Googling a question brings a lot of good answers.
Most importantly, I have to like the way the code flows.
Edit: Also they have to be anal about coding standards. If there is inconsistency, I get very annoyed.
Those 3 points brought me to Symfony. It is always using the latest cutting edge features of the latest PHP version. Symfony 2.0 is using namespaces before any other framework.
Two of your points were:
i18n - there is great support for it (helps that the company behind it is French, so i18n is a first class citizen).
Scales - Yahoo Answers and Vimeo use Symfony and contribute back code. If those guys can scale Symfony to 100 million users, you can too :)
It all depends on the type of project you will be developing.
Are you building a web application or a heavy content website or something else?
You also mix up programming languages with frameworks. The frameworks for PHP that I know are: CakePHP, CodeIgnitor, Zend and Symfony. For an out-of-the-box heavy content website I would suggest Drupal or Expression Engine.
It seems you won't be developing yourself. In that case I would determine the cost and availability of programmers and how widely the framework is supported and by who it is backed. The Zend framework is backed by the guys behind PHP, while CodeIgnitor is backed by the guys behind Expression Engine. Drupal has professional support packages,...
IMHO, for something that will have a lot of users, go for a compiled language.
If you don't try it, you will not know. So, I'd say do a small project in each of the frameworks you are seriously thinking about. I would prepare myself to do a lot of testing if it's something I'll be maintaining for some years. It's better to start off on the right foor than to get half way through a project only to realize you took the wrong path. There may be some requirements that end your search. For example, your servers' OS, a framework feature, or scalability. If you lay out your software plans and requirements, you probably will have very little left to choose from - unless your project really is quite generic or simple.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I'm a long time hobbyist programmer interested in getting into web application development. I have a fair amount of personal experience with various non-web languages, but have never really branched over to web applications.
I don't usually have any issues learning new languages or technologies, so I'm not worried about which is the "best" language or web stack to work with. Instead, I'd like to know of any recommended resources (books, articles, web sites, maybe even college courses) that discuss web application design: managing and optimizing server interaction, security concerns, scalability, and other topics that fall under design rather than implementation.
What would you recommend for a Standalone Application Developer wanting to branch out into Web Development?
There is a wide variety of web application languages you could get into. The ones I have most experience with (and therefore will be talking about here) are PHP, eRuby and Ruby on Rails. All of these have good tutorials available on the internet - I'll link to some of them below.
Which to choose depends on exactly what you're looking to do. Using PHP and eRuby you have to do most things yourself - whereas Ruby on Rails will do lots of stuff for you (useful, but can also be dangerous if you don't know what you're doing). Ruby on Rails is good for doing database related things - for example the standard CRUD (Create, Read, Update, Delete) application. The standard kind of app Ruby on Rails (often abbreviated to RoR) tutorials teach you is a blog application (Create entries, Read entries, Update entries, Delete entries) or an Address Book Application. It is possible to do many of these sort of applications almost in one line of code - using RoR's 'scaffold' function.
PHP and eRuby make you do more of the work yourself - but this can be better in some situations. PHP is more well known and used than eRuby, but I like the Ruby language so I tend to like using eRuby. These are both good for doing simple applications (like contact forms on websites) or more complex applications (phpBB - a piece of forum software is written in php).
As for which one to choose - I'd have a play with them and see what you think. Try running through the first few bits of a tutorial with each and see how whether you like it or not.
Here come the links to various tutorials:
PHP
PHP 101
PHP Intro from W3Schools
eRuby
Beginning eRuby - not great, but shows you how you can embed it in HTML
Try Ruby in your Browser - helps you learn Ruby which you need to know for eRuby
Ruby on Rails
Rolling with Ruby on Rails - the latest 'revisited' version for the latest version of RoR
Rolling with Ruby on Rails part 2
There are a few tutorials to get you started. Some of these take you through installing the necessary software (webserver and anything else needed - eg. php or ruby) and some don't. A good way to get Apache (webserver), MySQL (db) and PHP installed on windows is to use XAMPP. If you're on linux then apache, mysql and php will be in your package repositories and there may be distro specific guides to setting them up.
A lot of languages have web counterparts. JSP for Java, Rails for Ruby, Django for Python, etc. That might be a lead.
If you want to go for the platform with arguably the biggest user base (and with that, the biggest pile of tutorials and examples), go for PHP.
I strongly advise on looking into various frameworks though. For every web-oriented language there's bound to be a lot of resources that take away the trouble of writing all the low-level plumbing code, so you can focus on the stuff that matters. Personally I almost exclusively use .NET, but I've heard about a bunch of nice PHP frameworks, like the Zend platform and CakePHP (for MVC development).
If you intend to also use javascript in your applications to give that nice web 2.0 feel to your applications, please, use a library that hides the messy browser details. You'll go nuts if you try to do all the cross-browser scripts yourself. Some good ones are Prototype and jQuery.
Eloquent JavaScript and AppJet offer great tutorials that allow you to follow along while you learn.
Once you cover all the basics, Ajaxian should answer many of the questions you have about application design, etc. Not only do they post many excellent articles on these topics, but you should explore many of the sites they link to, as these sites usually also provide a wealth of info.
When it comes to server interactions, know your options. Ajax isn't all there is. Research technologies like Comet and JSON-RPC, as well as looking at various server-side frameworks that provide easy access to JavaScript such as DWR, Jayrock, or any tool that exposes your functions to JavaScript using whatever language you choose to use on the server.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 8 years ago.
Improve this question
Let's say I woke up today and wanted to create a clone of StackOverflow.com, and reap the financial windfall of millions $0.02 ad clicks. Where do I start?
My understanding of web technologies are:
HTML is what is ultimately displayed
CSS is a mechanism for making HTML look pleasing
ASP.NET lets you add functionality using .NET(?)
JavaScript does stuff
AJAX does asyncronous stuff
... and the list goes on!
To write a good website to I just need to buy seven books and read them all? Are Web 2.0 sites really the synergy of all these technologies?
Where does someone go to get started down the path to creating professional-looking web sites, and what steps are there along the way.
While I have built my knowledge largely based on using the internet to search out what I want to know (w3schools.com helped a lot, as did A List Apart), a few good books have helped me along the way, though they have been platform/language-specific, so I'll avoid mentioning them unless someone is curious. For me, at least, having a book open so that I don't have to resize windows or switch between them is very valuable.
The first part of your list is ok, but the last few items need tweaking. ASP.NET adds server-side functionality (for the most part) to your application. This lives outside of the browser and is thus quite powerful and easily shared with a variety of end-users.
The problem (some say) with server-side processing is that your application must make a new HTTP request when you ask for an action to be performed. So if you click on a link to a page that yields a new set of data, you don't get instant results. The page reloads, or loads a separate page.
Javascript solves this to a degree--it allows you to respond to user input instantaneously. Do you want to display the sum of two numbers when the user clicks a button? You can do it with Javascript.
The problem with Javascript is that it can't talk directly to databases, or explore your server's file system, or other stuff like that. It lives in the browser--period.
AJAX bridges the gap between your user's browser and your server. With AJAX, Javascript makes the HTTP request without refreshing your page or loading a new one. Javascript talks to a server-side script (not necessarily ASP, either--works with PHP, Rails, Coldfusion, etc.) and sends and receives information. And because Javascript isn't dependent on page loads, a quick, snappy AJAX script can almost give the feeling of a common desktop application, in which you don't have to wait for HTTP requests when performing simple actions on your application's data.
I think that this series of Opera Articles will give you a good idea of web standards and basic concepts of web development.
2014 update: the Opera docs were relocated in 2012 to this section of webplatform.org:
http://docs.webplatform.org/wiki/Main_Page
Ian's answer has a lot of weight. You could buy all those books and read them all and know nothing about web development. What you really need to do is start with something that is not nearly as big as Stack Overflow. Start with your personal site. Read some web dev/css articles on a list apart. Learn about doctypes and why to use them. Add some css and change the colors around. Go over to quirksmode and peruse the site. Add some js. Follow some links on Crockfords site. You will probably stumble across his awesome video lectures, which you should watch. Then after that go back to all the js that you wrote and rewrite it. Then pick a server side language that you want to learn. Python is pretty easy, but it really doesn't matter what you pick. Then come back and integrate all those together in your site. At this point you will at least be getting started with web development and will have worked with several different technologies.
EDIT: I forgot to mention. READ BOOKS.
Many developers that I have worked with in the past have gotten through their career without really advancing after a certain point. I could be totally wrong, but I attribute it to not reading enough books and relying on using their same bad code over and over.
You could go out and buy a bunch of books and start reading them and quickly get overwhelmed in the seemingly massive learning curve it takes to go from nowhere, which is where it appears you are, to a rich internet entrepreneur, which is where you want to be.
Alternatively, and what I would suggest is, you could define a problem you want to solve, and then go about finding the solution to that problem. Start with something small. "I have a problem: I don't have a web site about myself.". Define what you need to do to solve that problem, learn the basics, and do it. Then, define a new problem, which probably relies on the solution to the first problem, find what you need to do, and do it.
This is how all technology professionals evolve. My first website was a personal site with nothing but text. Then I added some jokes and some movie quotes. Then I got tired of man-handling all the updates to I learned how to put them into a database and retrieve them from the database for display. It goes on and on.
Call me when you've got more money from your financial windfall than you know what to do with.
If you really just want to jump in with both feet, I would suggest looking at ColdFusion from Adobe. The developer edition is free and runs on windows, os x and linux. The documentation is authoritative and extensive, there is a very active developer community and only a few books you might want to dig into. The definitive guide is a series of books that can be found on Amazon
The nice thing about ColdFusion is that you can use it as a stepping stone to other languages and remain productive along the way. You can even mix it together with Java since it is itself written in java. There are also lots of goodies built in that you would have to scour the web for or pay more for in other languages. Things like full text indexing, graphing, server monitoring, ajax based controls, flash/flex integration, asynch os calls, etc.
You even have the choice of building object oriented code or procedural code, although some people would not count that as a benefit. Those people rarely agree on which style should win, though.
Cheers!
I think sitepoint is the best resource for learning best practices in web development. They have great articles, good references, and probably one of the best forums. However the people there can be a bit grumpy. ;)
If you are a real nerd, reading the specs for HTML 5 and CSS is also a good way to learn.
I'm with Ian on this one. Reading books is all well and good, but nothing beats getting stuck in. I actually started with a Dummies Guide to ASP (that'd be "classic" ASP), back in 1999.
If I was going to start from scratch today I'd be looking at something that covered a full stack solution, whether Apache/PHP/MySQL, RoR or whatever.
ATM I have no experience of Rails, but it might be a pretty good place to start as it includes a lot of stuff that you'd have to figure out early on otherwise (integration with a Scriptaculous, a JS framework) - you can always learn what going on under the hood at a later date.
.NET is always an option, and if you're comfortable with Visual Studio it may be the way to go, but it's not the easiest thing to pick up otherwise.
If you know a bit of HTML but are basically new to server-side programming you might look at ColdFusion. It's actually extremely powerful and like Rails includes lots of "out of the box" benefits. There's a Swiss company called Railo who are currently in the process of releasing an Open Source ColdFusion engine that is affiliated with JBoss.
Last and not least - don't forget databases! Sooner or later you'll need to get to grips with some pretty serious SQL...
CFML (aka "ColdFusion" even though that's really an Adobe product, not the language) is definitely easy to learn, and if you want FOSS for CFML, in addition to Railo you can use Open BlueDragon which is a GPL CFML engine.
Designing with Web Standards is a great first read!
http://www.zeldman.com/dwws/
I would recommend this book:
http://www.amazon.com/MCTS-Self-Paced-Training-Exam-70-528/dp/0735623341/ref=sr_1_1?ie=UTF8&s=books&qid=1218830714&sr=8-1
I have just read it to take the exam, and although I knew the web theory part, I found it to be of great value.
This of course is a ASP.NET specific book, but that is what I would recommend learning anyways.
After you learn all the ASP.NET stuff, I would suggest reading up on JQuery.
Happy coding :)