Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Ask HN: Actual uses and differences between technologies
3 points by starshadowx2 on July 10, 2015 | hide | past | favorite | 10 comments
So I didn't explain what I was looking for in my last Ask post, so I'm going more straightforward for this one. I'm not really looking for how to code, or where to learn to code, but I want to know what different things are and what they're used for so I can go and learn more about what I need. Comments on my last post will be the next step.

1. What it is? (a wiki or documentation page would be good)

2. What it could be used for, actual use-cases? (ex. website, mobile app, database, etc.)

3. Differences between competing/others of the same type? (ex. JavaScript vs Rails, SQL vs NoSQL, etc.)

4. Examples of its usage. (Facebook in PHP, website in HTML5, etc.)

If you could answer any or all of these, that would be really helpful. I know some are related/same thing so combine those if necessary:

JavaScript, React, Node, Angular, Meteor, Ionic, SQL, MySQL, NoSQL, MongoDB, HTML5/CSS3, Ruby/Rails, Python/Django. If there's any other major things I missed that you know well, maybe add that too?

Sorry if I'm being super needy here, I'm just trying to get more of a professional opinion to help with my research.



Javascript - programming language used in browsers

Ruby, Python - general purpose programming languages. Often used in web development.

Rails, django - server-side web development frameworks. These are sets of related code libraries that make it easy to develop web applications using ruby and python respectively.

Mysql, Mongo - These are databases. Mysql is a relational database and uses sql as the programming language to interact with days. Mongo is an example of a nosql database. Nosql is a catchall term for databases that aren't relational and don't use sql.

React, angular - front-end javascript frameworks that are used to make complex browser interactions I'd like making sortable data tables.

Html5/css3 - Html and css are the building blocks of web pages. The numbers indicate the latest vegrsion which included a number of new ui abilities.


Basically html and css are used to create web pages and style them. The databases are used to store data such as user accounts. Rails, django, node, meteor allow you to create dynamic web pages so that the page can store data and do different things based on the data. The front-end frameworks allow you to do much the same thing but all in the browser, which provides different constraints.


Thanks for your answers. Do you have any insights to #3 or #4, or any good links/documentation I can read for any of the things?


For databases here is a decent comparison: https://www.scriptrock.com/articles/mysql-vs-mongodb. Mysql is heavily used at Facebook and Google and at most traditional companies. They start having scaling issues at around 1 terrabyte of data but there are known ways to scale further. Mongo and other nosql databases are rapidly being adapted. I know Squarespace uses Mongo for some of their analytics.

Javascript + Nodejs/Ruby + Rails/Python + Django - The main difference between the three is the language choice. Javascript/Nodejs offers native asynchronous support and can be faster but can be difficult to maintain large codebases in. The other benefit of nodejs is that you don't need to switch languages when working on the front-end and backend systems which can be a major boon in small teams.

React/Angular - Made by Facebook and Google respectively. Comparison https://www.airpair.com/angularjs/posts/angular-vs-react-the...


For those wondering, this seems to be RE: https://news.ycombinator.com/item?id=9861378

If you're using Codecademy you're off to a good start. The question is what do you want to build. A blog? An iOS app? solve some computational questions?

Once you can code, you can work with just about anything because most languages are based on the same fundamentals. So pick a project or a technology and then google "Build a XXX tutorial" or just the technology name and find a tutorial.

I find that the easiest language to learn is Python. Once you know the basics, you can start with http://projecteuler.net for some coding / CS problems. From there move on to https://docs.djangoproject.com/en/1.8/intro/tutorial01/ for some Django stuff.

I tell people to learn languages in this order: Python -> JS -> Java -> C -> C++ -> Haskell/oCaml -> whatever you need for work.

Standard web stacks include LAMP and MEAN. Standard mobile apps are written in Swift (with some C++) and Java (with some other random stuff thrown in there). Pick a set of technologies and write something simple (like a blog or calculator or mini social network.) Then swap out one or two components and build it again. I've built a bunch of blackjack games in 10+ languages with 4 or 5 different UIs, solved a bunch of the projecteuler stuff in a bunch of languages, and at work I play browse around the code base (Java, JS, Coffeescript, Typescript, C++, etc.) to read other people's code. When you do the same project over and over you learn the strengths and weaknesses of each project.

At the end of the day, most tools are mostly the same (especially if you don't have to worry about scale) and their strengths and weaknesses are less important that the developers comfort level.


Why both C and C++? I'm guessing because some standard mobile apps use C++?


This article I wrote explains some of the core technologies of the web from a high level, including many in your list:

http://illuminatedcomputing.com/posts/2014/03/basics-of-web-...

I suspect you might know most of it already but perhaps you'll find something helpful.


I found this rails vs django compassion helpful. https://www.coursereport.com/resources/ruby-on-rails-vs-pyth...


This was really helpful, thank you. That's the type of format I was looking for.


Haskell - A purely functional programming language that is a general purpose language. It's often cited to be best for making language parsers using Parsec or Attoparsec, but I've found with Snap/Yesod/Scotty it is great for web development.

Purescript - A pure functional alternative to JavaScript that compiles down to very concise readable JavaScript code in the rare case you need to debug it or track down performance issues.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: