

Ask HN: Actual uses and differences between technologies - starshadowx2

So I didn&#x27;t explain what I was looking for in my last Ask post, so I&#x27;m going more straightforward for this one. I&#x27;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&#x27;re used for so I can go and learn more about what I need. Comments on my last post will be the next step.<p>1. What it is? (a wiki or documentation page would be good)<p>2. What it could be used for, actual use-cases? (ex. website, mobile app, database, etc.)<p>3. Differences between competing&#x2F;others of the same type? (ex. JavaScript vs Rails, SQL vs NoSQL, etc.)<p>4. Examples of its usage. (Facebook in PHP, website in HTML5, etc.)<p>If you could answer any or all of these, that would be really helpful. I know some are related&#x2F;same thing so combine those if necessary:<p>JavaScript, React, Node, Angular, Meteor, Ionic, SQL, MySQL, NoSQL, MongoDB, HTML5&#x2F;CSS3, Ruby&#x2F;Rails, Python&#x2F;Django. If there&#x27;s any other major things I missed that you know well, maybe add that too?<p>Sorry if I&#x27;m being super needy here, I&#x27;m just trying to get more of a professional opinion to help with my research.
======
twunde
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.

~~~
twunde
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.

~~~
starshadowx2
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?

~~~
twunde
For databases here is a decent comparison:
[https://www.scriptrock.com/articles/mysql-vs-
mongodb](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...](https://www.airpair.com/angularjs/posts/angular-vs-react-the-tie-
breaker)

------
marisbest2
For those wondering, this seems to be RE:
[https://news.ycombinator.com/item?id=9861378](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](http://projecteuler.net) for some
coding / CS problems. From there move on to
[https://docs.djangoproject.com/en/1.8/intro/tutorial01/](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.

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

------
pjungwir
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-...](http://illuminatedcomputing.com/posts/2014/03/basics-of-web-
architecture/)

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

------
VT_Drew
I found this rails vs django compassion helpful.
[https://www.coursereport.com/resources/ruby-on-rails-vs-
pyth...](https://www.coursereport.com/resources/ruby-on-rails-vs-python-and-
django-which-should-a-beginner-learn)

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

------
codygman
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.

