Ask HN: Looking for an overview of web application development
There seem to be a lot of languages involved. I am finding the abundance of options confusing. Searching the web mostly revealed strong opinions about the author's platform of choice without convincing analysis.
Can anyone direct me to a book or site which describes the overall web framework and discusses the merits of competing options? I need something that breaks down how websites are served and what type of operations are performed on the client vs the server.
I tried to figure out how websites I liked were built. They tended to list various stacks. The variations convinced me that many roads lead to Rome, but left me without a map of the various paths.
Background: I have built desktop applications in java and common lisp. I find lisp more enjoyable, and would prefer to work in a lisp style. However, I recognize that a flexible approach may be required. I took a class in Ruby on Rails several years ago, but it was rather poorly taught. I have played around with html and css.
Endstate: I would like to be able to produce a site with capabilities similar to smartsheet.
6 comments
[ 2.9 ms ] story [ 24.9 ms ] threadhttps://wappalyzer.com/download - one of my favorite tools - will give you a little more insight into what smartsheet uses - they're homepage at least, is a LAMP stack with Drupal.
Smartsheet would be a tall order for your first or 5th project. Get a cheap server somewhere - start with PHP, Rails or Node and build stuff. Learn how to communicate from the frontend to the backend - make mistakes, rinse repeat.
I haven't bought or read a book in years; once you get the basic concepts down, searching google / stackoverflow for how to do something will come much easier.
I realize I won't be building Smartsheet anytime soon, but I want to start learning the tools with enough power to get me there.
I do plan to "Start with PHP, Rails or Node and build stuff," but first I would like to have a broad understanding of the frontend to backend path you describe. I know nothing of this process. I am looking for the basic concepts. In some ways, I feel like I'm trying to take derivatives with a fuzzy understanding of algebra. Following the book's example can get you from x^n to n*x^(n-1), but not to understanding.
It's like reading documentation for MS Word, with every menu item explained but no clue as to how you'd put together a large, complex document. How to use every little feature, but nothing on when and why to use the features.
Please keep that in mind, writers. :)
http://illuminatedcomputing.com/posts/2014/03/basics-of-web-...
Note there are a few "lies" for the sake of simplifying, and some comments are a little dated, but hopefully it is helpful for you!
EDIT: Let me add, if you're wondering about what language & framework to choose, my advice is it doesn't matter too much, so don't spend much time on this decision. Go with your taste/enjoyment and dive in. You can't make a good choice from reading other people's generalities, so don't try. My preference is Rails, but tastes differ. (I will offer my own generalities though: Rails is best at rapid development and adaptability, Python is best at stats/machine learning, and I'd don't know what Java & C# are best at. For "best at safety/correctness" maybe I'd choose Haskell. :-)
Also, I'm definitely interested in incorporating machine learning, so I think I will give Python a try.