Skip to content

alexey-yarmosh/langs-rest-api

Repository files navigation

Results:

Language Time Notes
Node.js (NestJS) 1:28:38 - it took a lot of time and update of several tsconfig.json fields to copy data.json file during compilation.
Python (Django) 1:37:05 - initially after googling 'python django rest api' first link led me to the django-rest-framework which seems to be a child framework of django. As both of them serve one purpose you can spend some time before understand that you chose the wrong framework.
- after importing Todo class from models.py to file where Todo class was already presented error message told about maximum of stack size, not about duplication of classes.
Ruby (Rails) 1:26:48 - during the installation, after the first basic problem first stackoverflow answer led to the site which offered me to setup ruby on mac for a price of 7 to 37$. It seem weird for me to ask money for the bunch of cli commands. Luckily sibling link contained all required info.
- the idea of conventions is everywhere in the app, but that is the thing you learn once and use everywhere so overally the idea is nice. Moreover it provides you with a lot of nice features (e.g. autoimport).
- while adding a lot of optional stuff (mails, jobs, etc.), there is no /services folder by default. Starter guide offers us to write all service logic in the controller. Maybe that is so because of the MVC nature of the app.
Java (Spring) 3:11:38 - spring provides only few paragraphs about code structure of the app.
- there are a lot of explicit imports of library and java standard packages, on the other hand you don't need import if you want to use a class from another file. Also there is no explicit import of TodoController.java into DemoApplication.java.
- explicit error handling is a nice feature, compiler will tell you if some operation can throw an exception and will require you to handle it properly.
- language is very type oriented, there should be a type for everything (e.g. JSON file you are parsing).
- a bit weird folder path to the main app files src/main/java/com/example/demo/*.java.
C# (.NET) 2:17:15 - developing on mac for .NET is weird, stable Visual Studio for Mac supports only .NET version 5, while the latest version is 6. That is why you have to work in Visual Studio Code. And VSC has its own issues, for example some of old compile errors after fixing were still on the debug panel, or there were compile errors but after restart those errors are gone.
- namespaces system is an interesting concept, on one hand you don't have to import every single entity, on the other hand a lot of imports happens implicitly so sometimes it may be confusing, shoud you add using statement or not.
Clojure 5:27:39 - overally it is extremely hard to develop and debug your application, I want to believe that is because of the steep learning curve.
- there of building complex application, even to start a web server you need to look 2 different videos and a few guides.
- language is not very logical, there is no find in vector method, community suggests to filter and pick first element instead. Description of standard methods is poor, examples are written by community and are too tricky to for examples of the API.
- REPL inside your dev environment is a nice feature. Immediately run a peace of code instead of constantly re-running a full app is a nice feature. Need to spend some time on configuring it and then dev experience should be much better (in comparison to other languages).

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published