Python VS JavaScript: Which One Should You Learn?
Python vs JavaScript: should I learn Python or JavaScript? The answer is in this article!
Last Updated: August 31, 2023
Choosing the right programming language for your work is a huge priority before starting to write your first lines of code. There are plenty of languages for you to choose from. And it’s easy to learn with plenty of online resources available, including learning platforms like DataCamp, Udacity, and edX, especially when they include specific courses on Python programming or machine learning!
You might have encountered two languages that intrigue you: Python VS JavaScript. In some ways, these two languages are comparable, but usually, their use cases, syntax, and approaches to programming differ significantly.
Let’s see what differences and similarities these two languages have!
Table of Contents
- 1. Definition and Use of JavaScript
- 2. A Brief Introduction to Python
- 3. Python vs. JavaScript: the Popularity of Both Languages in 2023
- 4. JavaScript for Data Science? Or Python?
- 5. Node.js VS Python: Front-End and Back-End Aspect
- 6. Difficulty Comparison: Which is More Beginner-Friendly?
- 7. JavaScript vs. Python for Web Development
- 8. Mobile Development
- 8.1. Best Options for Developing Mobile Apps
- 9. Node.js vs. Python Performance
- 10. JavaScript and Python Integration
- 11. Conclusions
Definition and Use of JavaScript
The main definition of JavaScript is that it is a client-side scripting language for making static websites interactive.
Latest DataCamp Coupon Found:
Verified Staff Pick
50% DISCOUNT
DataCamp Black Friday Sale
During this DataCamp Black Friday, you can access the top-rated courses with a huge 50% discount. Get the annual subscription plan & redevelop yourself!
Expiration date : 23/11/2023
4,834 People Used
Only 74 Left
Verified Staff Pick
Have you ever wondered which online learning platforms are the best for your career?
50% DISCOUNT
DataCamp Black Friday Sale
During this DataCamp Black Friday, you can access the top-rated courses with a huge 50% discount. Get the annual subscription plan & redevelop yourself!
Your Discount is activated!
Expiration date : 23/11/2023
4,834 People Used
Only 74 Left
Verified Staff Pick
Have you ever wondered which online learning platforms are the best for your career?
50% DISCOUNT
DataCamp Black Friday Sale
During this DataCamp Black Friday, you can access the top-rated courses with a huge 50% discount. Get the annual subscription plan & redevelop yourself!
Your Discount is activated!
Expiration date : 23/11/2023
4,834 People Used
Only 74 Left
Since JavaScript is a scripting language, it also does not require an individual compilation step. Let’s explain this in more detail:
Browsers have built-in engines that understand and execute JavaScript commands. Therefore, you can include the JavaScript code directly into your HTML document (write commands within the tags). And guess what — no need for additional compilers.
It should be pointed out that browsers are the ones that run the JavaScript code. Developers can even write JavaScript code in such simple programs as Notepad++.
The Most Liked Findings
Looking for more in-depth information on related topics? We have gathered similar articles for you to spare your time. Take a look!

What is Data Literacy, and Why is It Important for Your Business?
What is data literacy: definition, importance, best data literacy training programs, and much more.

How to Learn AI From Scratch: Top 5 AI Courses
Find out how to learn AI efficiently and why you should do so.

Where to Learn ChatGPT: A Simple Guide to AI
Find out where to learn ChatGPT and how this tool took the internet by a storm.
A Brief Introduction to Python
The first noticeable difference in the discussion of Python VS JavaScript is that Python is an object-oriented, high-level programming language.

It is a general-purpose language, which answers the question is Python front-end or back-end. Because of its simplicity, flexibility, versatility, and other useful features, Python is growing and becoming one of the most popular programming languages around. If you’d like to learn more about where to learn this programming language, you can find our DataCamp Python guide here.
Scripting languages such as JavaScript provide instructions that browsers execute. However, object-oriented languages work with building blocks (objects). They let developers create objects, assign attributes to them, or set them to perform actions.
Python vs. JavaScript: the Popularity of Both Languages in 2023
According to the Developer Survey of 2023, JavaScript is still the leading programming language. However, the popularity of Python has also risen significantly over the last couple of years, beating such languages as Java, C#, PHP, and C++.
Web frameworks of JavaScript are also leaders: jQuery, React.js, and Angular.js are the top three used web frameworks. In this list, we also see some frameworks of Python: Django and Flask.
Another interesting aspect of this survey is that Python is the second most loved language. When it comes to the wanted category, Python takes the lead, pushing JavaScript to second place.
Python is now the fastest-growing programming language, with its developers making approximately $116k (median salary). JavaScript programmers are not far behind: they make approximately $110k per year. Therefore, the battle of Python vs. JavaScript depends on your goals since salary-wise, they are similar.
JavaScript for Data Science? Or Python?
JavaScript is one of the most popular programming languages in the world. However, this does not mean that it is capable of performing any task provided.
Data science is an upcoming field in which specialists learn to analyze, manipulate raw or structured data. Data scientists usually use several programming languages together (one of them being Python).

While data science is possible with JavaScript as well, specialists do not choose it regularly. Here are the main reasons why Python wins Python vs. JavaScript in terms of data analysis:
- JavaScript does not offer many data science packages and built-in functions compared to Python.
- With JavaScript, you would take longer to perform data science tasks and solve issues. In this case, Python is a better choice since you can easily find how-to tutorials and other tips for data science.
- Overall, JavaScript for data science is more of an adventure, meaning that you will need to figure out most of the things on your own. While this seems interesting, people who want to perform actions quickly will probably go with using Python or R languages.
Nevertheless, JavaScript also has some perks when it comes to data science:
- It offers visualization with its D3.js, Plotly.js, and other libraries. By using them, it is easier to create impressive data visualization and dashboards.
- The release of the Tensorflow.js library provided opportunities for people to perform machine learning with JavaScript. It is an open-source project that lets you define, test, and run machine learning models on the browser.
The conclusion is that JavaScript is slowly becoming a rival of Python in terms of data science. However, Python guarantees a more efficient, structured, and guided performance.
Node.js VS Python: Front-End and Back-End Aspect
Comparing Python to JavaScript also includes discussing whether they are front-end or back-end. Initially, JavaScript was mainly concerned with making websites dynamic and user-friendly.
For instance, developers used JavaScript to submit forms or to prevent sites from fully reloading when only small details needed to be updated.
An old belief is that Python is the back-end, and JavaScript is front-end. Is this true? Let’s investigate together.
JavaScript became an option for backend with the introduction of Node.js environment. Thanks to this extension, you can run JavaScript code outside browsers (on the server).
Is Python frontend or backend? Python actually is a general-purpose language, meaning it is applicable both on the server-side and the client-side. Traditionally, it is more noticeable in backend development.

Python has capabilities in the front-end as well, but we do not recommend replacing languages that are front-end by nature with Python. Currently, browsers do not execute Python. Therefore, you would have to transpile Python to JavaScript before using it.
Even if you can transpile Python to JavaScript, the interpretation of code makes the execution process slower. Brython is one of the transpilers you could use, but probably shouldn’t as the Python is not ready to be considered as “running on the browser.”
Therefore, JavaScript wins the front-end aspect of Python vs. JavaScript.
Difficulty Comparison: Which is More Beginner-Friendly?
Beginners are often interested in the simplicity aspect of Python vs. JavaScript: which is easier to master? The answer: JavaScript is more difficult to master than Python.
Python is usually the beginners-choice, especially for those who do not have any prior programming experience.
- Python code is notorious for being more readable, meaning that it is easier to understand (and write).
- The code in Python has fewer lines than in other languages such as C or C++.
- There are fewer structural rules in Python. For instance, you are not required to write a semicolon after every statement.
- It has many frameworks that contain pre-written code to speed up the development of your projects.
However, despite being easy to learn, Python does require some good navigational skills. After mastering the basics, you should look through available frameworks, see their purposes, and how they can help you produce applications. A detailed analysis of Python libraries is here.
JavaScript is the most popular language, but it is not that easy to learn.
- One important aspect is that JavaScript is difficult to debug. You might notice that despite your code being error-free, the program won’t work (fail silently).
- There are many additional characters, such as curly brackets and semicolons. However, in the newer version of JS, semicolons appear automatically.
- One perk is that the JavaScript syntax resembles the rules of other C-like languages. Therefore, people with experience in such languages will be more prepared to learn JavaScript.
In conclusion, it is always easier to learn the language that interests and excites you. Additionally, do not assume that the more theoretical posts you read, the better of a programmer you will become. It is more important to develop actual projects with specific ideas, figuring out possible options, and selecting the best-suited ones.
JavaScript vs. Python for Web Development
There are several criteria for answering the question of should I learn Python or Javascript for web development. You need your application or website to be fast and to handle the growing amount of data and code.
When comparing the performance aspect of JavaScript vs. Python, JavaScript is the clear winner. Software that runs on Python will take longer to respond, making it idle for the user community. Therefore, if you are interested in creating websites that perform efficiently, you should use JavaScript.
Number of Courses
Number Of Languages
Number of Users
Table: DataCamp VS edX statistics
Scalability is also important when discussing Python vs. JavaScript. It refers to the capabilities of languages when it comes to handling huge numbers of users and managing large amounts of data by using minimal server utilization.
One of the purposes of Node.js is that it was designed for scalability and supports asynchronous programming. Therefore, Node.js is much more suitable for the development of programs that depend on the speed of execution.
However, how to use Python for web development? Python is mostly applicable in the server-side. This language has a very stable environment with frameworks such as Flask, Django, Pyramid, and CherryPy, making sure that development becomes more efficient.
If you want to become a web developer, especially front-end web developer, you can’t go without JavaScript. Learn JavaScript on edX.
Mobile Development
Traditionally, Python was not for creating GUI applications. However, frameworks such as Kivy and BeeWare make mobile development with Python possible.
Kivy is an open-source Python library that has an original UI toolkit with its versions of buttons, text entry forms, text labels, etc. It supports both Android and iOS.
Developers also present some cons of using the Kivy framework for Python mobile development. It resembles a game engine more than a native app engine by rendering most of the custom controls in OpenGL instead of using native controls.
BeeWare is still a new library, meaning that it is not the best source of the material. However, it might make it possible to develop native-looking mobile and desktop apps with Python in the future.
Just because you can, does not mean you should. Even though Kivy makes the Python mobile development possible, it is not the first-choice option.
Pros
- Easy to use with a learn-by-doing approach
- Offers quality content
- Gamified in-browser coding experience
Main Features
- Free certificates of completion
- Focused on data science skills
- Flexible learning timetable
JS vs Python для web?
Что выбрать из этих двух технологий вне зависимости frontend или backend.
По JS(+React, etc) на мой взгляд вакансий существенно выше чем по Python(Django+Flask). Кто в теме, новомодная Webassembly — это замена JS?
kostya_shestakov
14.08.20 19:03:44 MSK
← 1 2 →
4.3. Сообщения, провоцирующие нездоровые дискуссии.
vvn_black ★★★★★
( 14.08.20 19:14:19 MSK )
Что выбрать из этих двух технологий вне зависимости frontend или backend.
Если frontend то python наверное
pi11 ★★★★★
( 14.08.20 19:21:48 MSK )
Ты сравниваешь жопу с пальцем. Django, например, можно использовать вместе с React, а можно и без. Что ты хочешь знать? На чем пилить API для фронтенда? Фронтенд — React/Angular/Vue. Там только JS. Бэкенд — python, nodejs, golang или php. Django для API юзать весьма избыточно.
Если собрался фулстек пилить, то бери Django, аналогов в JS я не видел.
Что касается количества вакансий, то JS сравнивать с чем-либо неуместно, потому что это слово фигурирует уже чуть ли не в каждой вакансии в силу широкой сферы применения. Даже в бэкенд-вакансиях слово JS нередко фигурирует во фразах вида «желательны базовые знания JS». Если говорить об использовании JS чисто для бэкенда, то его доля не столь велика и, думаю, уступает тому же php, например.
dimuska139 ★★
( 14.08.20 19:34:04 MSK )
Последнее исправление: dimuska139 14.08.20 19:35:17 MSK (всего исправлений: 1)
Как ты на стороне браузера запустишь python?
te111011010 ★
( 14.08.20 19:38:42 MSK )
Ответ на: комментарий от te111011010 14.08.20 19:38:42 MSK
Я не собираюсь запускать его на клиенте. Но раз уж вопрос задан, то вроде есть pyodide.
kostya_shestakov
( 14.08.20 19:39:27 MSK ) автор топика
Ответ на: комментарий от kostya_shestakov 14.08.20 19:39:27 MSK
Что выбрать из этих двух технологий вне зависимости frontend или backend.
А frontend — это то, что на клиенте запускается.
te111011010 ★
( 14.08.20 19:41:20 MSK )
Ответ на: комментарий от dimuska139 14.08.20 19:34:04 MSK
Я новичок и хочу выбрать для себя технологию в которой буду развиваться. Определил точно что это будет веб. Мониторил вакансии и выбрал два направления JS и Python. Я из Питера, но вакансий по django мне показалось как-то очень мало. Если же брать JS то там на горизонте маячит WebAssembly. Хотелось бы узнать мнения спецов по этому поводу. Возможно я выбираю не из того(не из JS и Python).
kostya_shestakov
( 14.08.20 19:43:23 MSK ) автор топика
Ответ на: комментарий от te111011010 14.08.20 19:41:20 MSK
Вопрос задан с целью дальнейшего трудоустройста.
kostya_shestakov
( 14.08.20 19:44:11 MSK ) автор топика
вакансий существенно выше чем по Python(Django+Flask)
а больше всего вакансий продавцами в Дикси
vedowi6419 ★
( 14.08.20 19:45:17 MSK )
Ответ на: комментарий от kostya_shestakov 14.08.20 19:43:23 MSK
Не маячит — забей
Ты для начала определись, бэкенд будешь разрабатывать или фронтенд — а там уже выбирай язык и технологии. Никто и то, и то одновременно не разрабатывает — сил и времени не хватит, всё очень быстро развивается. Да, есть фулстек-разрабы, но по большей части они работают с легаси тех времён, когда ещё не было всяких ангуляров, а на фронте болталось jQuery. И, да, фулстек — это вечный мидл.
dimuska139 ★★
( 14.08.20 19:48:52 MSK )
Последнее исправление: dimuska139 14.08.20 19:49:54 MSK (всего исправлений: 1)
Ответ на: комментарий от te111011010 14.08.20 19:38:42 MSK
Как ты на стороне браузера запустишь python?
vvn_black ★★★★★
( 14.08.20 20:10:25 MSK )
Ответ на: комментарий от vvn_black 14.08.20 20:10:25 MSK
Обожаю эту аргументацию уровня вброса какой-то поделки сумрачного васяна как пример того, что что-то подходит для веба, особенно когда это что-то написано на js один хер, кек.
anonymous
( 14.08.20 20:22:05 MSK )
Ответ на: комментарий от anonymous 14.08.20 20:22:05 MSK
vvn_black ★★★★★
( 14.08.20 20:25:27 MSK )
Ответ на: комментарий от vvn_black 14.08.20 20:25:27 MSK
действительно, а теперь поди и посмотри как это работает исходный текст открыт.
anonymous
( 14.08.20 20:27:49 MSK )
Ответ на: комментарий от anonymous 14.08.20 20:27:49 MSK
Что ж ты тугой такой к вечеру, сам кекаешь, а как же другим рофлить.
vvn_black ★★★★★
( 14.08.20 20:29:49 MSK )
Ответ на: комментарий от vvn_black 14.08.20 20:29:49 MSK
Конечно теперь рассказывай что ты просто шутил. В этом дерьме нет смысла как и в твоих оправдашках. Python во фронте не существует без js. Запустить то ты можешь это дерьмо, но кому такая херня нужна, в js и без этого дерьма хватает, эти идиоты и сами справляются.
anonymous
( 14.08.20 20:39:04 MSK )
Ответ на: комментарий от dimuska139 14.08.20 19:48:52 MSK
Вопрос по WebAssembly как замена JS возник по причине: посмотрел видео на youtube у некого айтиборода по blazor.
Если взять Backend, то что бы вы посоветовали с целью дальнейшей работы, а не просто для себя?
kostya_shestakov
( 14.08.20 20:42:57 MSK ) автор топика
Ответ на: комментарий от anonymous 14.08.20 20:39:04 MSK
Конечно теперь рассказывай что ты просто шутил
Вот это же заметить невозможно (сарказм):
vvn_black ★★★★★
( 14.08.20 20:44:02 MSK )

Что выбрать из этих двух технологий вне зависимости frontend или backend.
JS, ведь он вне зависимости.
gedisdone ★★★
( 14.08.20 20:47:46 MSK )
Ответ на: комментарий от vvn_black 14.08.20 20:10:25 MSK
WitcherGeralt ★★
( 14.08.20 21:23:35 MSK )
Ответ на: комментарий от kostya_shestakov 14.08.20 19:44:11 MSK
Дворником трудоустройся и кончай срать на форме тупняком.
WitcherGeralt ★★
( 14.08.20 21:25:17 MSK )
Ответ на: комментарий от kostya_shestakov 14.08.20 20:42:57 MSK
Ну я бы не зацикливался на конкретном фреймворке, это во-первых. Во-вторых, взял бы что-то, что относительно стабильно. JS на сервере используется, да, но там чёрт ногу сломит: всё быстро меняется, а также есть фреймворки на typescript — офигеешь вникать и разбираться. А пока вникаешь, всё уже устареет.
В бэкенде активно используется… да, php. Очень широко распространён этот язык. Если выберешь его, то рекомендую сперва без фреймворков пописать код (не формошлёпство, а API всякие), а потом возьми Symfony (в этом фреймворке код весьма качественный и архитектура) и пиши по-нормальному, соблюдая PSR и покрывая код тестами.
Выберешь Питон если, то, опять-таки, сперва без фреймворков, потом Flask или FastAPI. Соблюдая PEP и покрывая код тестами.
Вообще не столь важно, что ты выберешь, потому что хороший специалист всегда востребован. Не важно, php или python — крутых спецов мало, и они востребованы вне зависимости от количества вакансий на hh.
dimuska139 ★★
( 14.08.20 22:10:11 MSK )
Ответ на: комментарий от vvn_black 14.08.20 20:10:25 MSK
Оригинально, но в реальных проектах это юзать было бы знатным извращением.
dimuska139 ★★
( 14.08.20 22:12:46 MSK )
Ответ на: комментарий от WitcherGeralt 14.08.20 21:23:35 MSK

pawnhearts ★★★★★
( 14.08.20 22:13:22 MSK )
Ответ на: комментарий от dimuska139 14.08.20 19:34:04 MSK

Django для API юзать весьма избыточно.
DRF офигенен для api. Особенно если надо быстро прототив сварганить.
pawnhearts ★★★★★
( 14.08.20 22:15:27 MSK )
Ответ на: комментарий от kostya_shestakov 14.08.20 20:42:57 MSK
Вопрос по WebAssembly как замена JS возник по причине: посмотрел видео на youtube у некого айтиборода по blazor.
Гнаться за трендами бесполезно. Вот когда это получит широкое распространение — тогда и изучай. Осваивай то, что уже вовсю широко используется.
dimuska139 ★★
( 14.08.20 22:15:56 MSK )
Ответ на: комментарий от pawnhearts 14.08.20 22:15:27 MSK
Для прототипа — возможно. А так Django, как и DRF — Вордпресс в бэкенде. Большинство проектов на этом — параша с толстыми моделями и неочевидными запросами к БД, которые обычно делаются абсолютно из любого слоя абстракции приложения (хоть из сигнала, хоть из вьюхи, хоть из сериалайзера, хоть еще откуда-то). А производительность Django — это отдельная тема вообще.
Возможно, это дело в самих разрабах, но всё же. Я юзал DRF, и могу сказать, что для API я бы взял лучше FastAPI вместо Django-монстра. Да и асинхронность иногда удобно юзать (в Django её не завезли по сути, и вряд ли нормально завезут в итоге). А вот если б у меня был огромный проект на Django, к которому надо API прикрутить, то DRF — без вариантов.
dimuska139 ★★
( 14.08.20 22:21:07 MSK )
Ответ на: комментарий от dimuska139 14.08.20 22:21:07 MSK

Это всё вопрос прямоты рук. С производительностью — тоже. По крайней мере там есть масса инструментов чтобы её тюнить — отслеживать и отлаживать запросы, автоматическое кеширование и всякие штуки типа https://pypi.org/project/django-auto-prefetching/
pawnhearts ★★★★★
( 14.08.20 22:24:57 MSK )
На самом деле это вопрос скорее религиозный. Мне хватает django jquery bootstrap.
Webassembly сейчас не готова, и по скорости и по функционалу
И вообше, все решает заказчик, может ему вообше php нужно
ism ★★★
( 14.08.20 22:25:57 MSK )
Я вспомнил как 10 лет назад корпрорация добра везде пиарила Python и даже хотела добавить его поддержку на клиенте в Хроме. Тогда бы тебя сумасшедшиим объявили и закидали дерьмом, мол на JS сервера не пишут… А потом появился Node.js. Python хорош своей универсальностью. Он полностью заменил Perl на Linux. Куча всяких тулз на нем написана… Но сейчас каждая вторая вакансия на Python от дебилов, жертв всяких бизнес курсов, которые с помощью нейронок пытаются создать аналог SkyNet, но не будем о м*даках… JavaScript выбирай короче, он универсальнее. В путинско-розенберговской радиоактивной нефтепомойке вся разработка сводится к вебу либо 1С. За последний давно мало платят. Сможешь и бэк и фронт писать на одном языке.
tz4678 ★★
( 14.08.20 22:35:43 MSK )
Последнее исправление: tz4678 14.08.20 22:40:24 MSK (всего исправлений: 1)
Про WebASSembley пишут педе-rust-о-макаки. Их тоже не слушай. Это по-ходу мертворожденная технология как HTTP/2, который все дружно скипнули, не заметив как вышел HTTP/3
tz4678 ★★
( 14.08.20 22:38:52 MSK )
King_Carlo ★★★★★
( 14.08.20 23:05:32 MSK )
Ответ на: комментарий от pawnhearts 14.08.20 22:24:57 MSK
Ну спорный вопрос. Асинхронности нет — значит, эндпоинты, которым требуется N раз обратиться к СУБД будут это делать строго последовательно. Нечастый кейс, но я неоднократно сталкивался. Ну либо эндпоинт дробить на несколько и из фронта их асинхронно дергать.
Для простых выборок сгодится. Но в большинстве случаев это не даёт ничего. Вот тупит у тебя запрос — и тебе DBA сделали его версию, которая работает в 100500 раз шустрее, но там спереди юзается with и ещё несколько плюшек, которые выразить в Джанге не получится. И чего, куда эти prefetch_related после этого засовывать? Тем более, что такие штуки есть во многих ормках, не только в Джанговской. Как и кеширование результатов запросов, кстати.
dimuska139 ★★
( 14.08.20 23:13:16 MSK )

JS — должен остаться в браузере, там и умереть. Если перестаёт хватать Python, тогда уже нужно смотреть в сторону Go и остальных.
th3m3 ★★★★★
( 14.08.20 23:30:06 MSK )
Последнее исправление: th3m3 14.08.20 23:30:19 MSK (всего исправлений: 1)
Ответ на: комментарий от pi11 14.08.20 19:21:48 MSK

Shadow ★★★★★
( 15.08.20 00:45:45 MSK )
Ответ на: комментарий от kostya_shestakov 14.08.20 19:43:23 MSK

Я новичок и хочу выбрать для себя технологию в которой буду развиваться.
Определил точно что это будет веб
Кажется, это не технология, а помойка или инструмент.
Мониторил вакансии и выбрал два направления JS и Python
Вакансии дня в Санкт-Петербурге
Гибщик от 60 000 до 85 000 руб. Гнём Всё, Санкт-Петербург
Shadow ★★★★★
( 15.08.20 00:48:56 MSK )
Ответ на: комментарий от dimuska139 14.08.20 23:13:16 MSK

Я всегда думал, что orm — это чтобы сразу на структуру данных выхлоп SQL отмапить, а не избежать SQL руками.
Shadow ★★★★★
( 15.08.20 00:55:01 MSK )
Ответ на: комментарий от Shadow 15.08.20 00:55:01 MSK
Я наоборот для инсертов в основном юзаю. Из бд чаще нужно получить несколько полей или результат какого-то рассчёта, а не записи целиком. Если же ты хранишь в бд объекты, то, имхо, напрашивается nosql.
WitcherGeralt ★★
( 15.08.20 01:01:28 MSK )
Последнее исправление: WitcherGeralt 15.08.20 01:02:17 MSK (всего исправлений: 1)
Ответ на: комментарий от Shadow 15.08.20 00:55:01 MSK
Я тоже так считаю, но реальность такова, что далеко не всегда выхлоп SQL можно замаппить на модели. И далеко не всегда сам запрос можно оптимальным образом сделать средствами ORM.
Как вариант, юзать квери-билдеры и raw-query вместо ORM и маппить выхлоп SQL не на Entity, а на dto-объекты (не связанные с таблицами в БД).
dimuska139 ★★
( 15.08.20 01:28:19 MSK )
Ответ на: комментарий от dimuska139 15.08.20 01:28:19 MSK

Вообще тут много вариантов. Ты можешь выхлоп view или хранимок замапить на модели. Или сериализатор. И большинство запросов таки нормально пишется средствами orm, даже джанговской. А уж какой-нибудь алхимией можно что угодно сделать.
pawnhearts ★★★★★
( 15.08.20 01:33:11 MSK )
Ответ на: комментарий от dimuska139 15.08.20 01:28:19 MSK

Я вот это и имел ввиду.
И SQL сервер при деле, и объекты в порядке.
Тот же peewee ORM raw метод умеет по страницам выводить.
Shadow ★★★★★
( 15.08.20 11:29:24 MSK )
crutch_master ★★★★★
( 17.08.20 04:25:45 MSK )
Ответ на: комментарий от Shadow 15.08.20 00:55:01 MSK
Nyet. Отмапить выхлоп sql это лишь одна из функций комбайна.
crutch_master ★★★★★
( 17.08.20 04:30:25 MSK )
Оба. И еще sql + жабка/го.
crutch_master ★★★★★
( 17.08.20 05:53:29 MSK )
Из всего перечисленного я бы взял го.
anonymous
( 17.08.20 06:36:24 MSK )
C++ бери. Он для веба лучше подходит.
anonymous
( 17.08.20 07:11:21 MSK )
Для фронтэнда либо JavaScript, либо TypeScript (рекомендую, проект больше одного файла без типов быстро превращается в адское месиво). Третьего просто не надо, особенно если интересует востребованность как специалиста на рынке.
Для бекэнда выбор уже больше. Если хочется писать всё на одном языке, то очевидный NodeJs. Однако и Python подойдёт. Правда, если ты хочешь сделать простое REST API, то Django будет явным оверкилом, тут нужно что-то попроще типа Flask.
Если хочется стабильности и энтерпрайза, то Java со Spring (если хочется синтаксического сахара и новизны, можно взять Kotlin вместо Java). Вакансии будут всегда и очень редки ломающие изменения. 100500 респонсов в секунду 99% проектов не нужны, даже StackOverflow публиковал статистику и там было всего несколько сотен запросов в секунду. Больше можешь ожидать только если ты делаешь новый фейсбук/инстраграмм/гугл etc. С другой стороны, главное БД правильно выбрать и спроектировать работу с ней, бекэнды без проблем можно запустить во множестве инстансов и компенсировать любые тормоза (если только на бекэнде нет лютого говнокода).
Можно попробовать упороться по Scala (база та же JVM) и функциональному программированию. Код красивый и правильный, вакансий мало, но платят много. Ну и если не найдёшь, то так как JVM стек очень легко будет перейти на Java/Kotlin и делать вид на собеседованиях, что ты только на них и пишешь.
Ещё есть Dart и Go, но первый мне не зашёл (во всяком случае на бекэнде), а со вторым не работал.
PHP не бери, это зашквар, с тобой только другие PHP-шники общаться будут.
KivApple ★★★★★
( 17.08.20 09:16:14 MSK )
Последнее исправление: KivApple 17.08.20 09:31:21 MSK (всего исправлений: 4)
Ответ на: комментарий от kostya_shestakov 14.08.20 20:42:57 MSK
С целью трудоустройства и при этом карьерного роста рекомендую Java или Node.js.
В случае с Node.js ты получаешь карьерные опции в будущем: перейти на фронтэнд или стать фулл-стек, затем перейти на мобилки через cordova.
В случае с Java ты получаешь карьерные опции в будущем: перейти на Scala, стать сеньором и начать угорать по функциональному программированию за сотни нефти, либо перейти на Kotlin и вкатиться в Android.
То есть каждая ветка развития даёт две дополнительные опции, которые можно использовать (а можно и не использовать, но главное, что они есть) в случае изменения ситуации на рынке труда или личных предпочтений.
В случае всех остальных веб-языков ты будешь на вечно привязан к одной сфере и твои знания будут бесполезны в других (кроме основ программирования — что такое переменная, класс, функция и т. д.).
KivApple ★★★★★
( 17.08.20 09:30:20 MSK )
Последнее исправление: KivApple 17.08.20 09:32:31 MSK (всего исправлений: 2)

А зачем вам нужен WASM, тут больше в этом вопрос. Если HiLoad — то тут опять же какой. NodeJS не серебряная пуля, хотя из современных стеков наиболее близка к ней, ИМХО.
NodeJS стал стандартом IBM (показатель, в отличии от Python, ЕМНИП), скажем, поэтому по нему вакансии были и будут. И тут и blockhain, и meteor-стартапы, и frontend (который уже не про анимашки), и electron-приложения, и hiload проксисервера + всё, что работает с MongoDB/RethinkDB/ArangoDB удобнее дефакто делать на NodeJS. Но это определённый круг задач. На практике — даже прототипы а-ля Django-приложения собрать можно та каком-нибудь SailsJS, работать будет на порядок быстрее. Проблема в основном, что backend программисты почему-то считают кривой python лучше кривого javascript. Хотя последний более развитый язык, с более развитой экосистемой. Правда на JS порог вхождения хотя бы на middle выше, т.к. у V8 есть куча нюансов. Плюс проблема ноды — бизнес верит, что вчерашнего фронта можно пересадить на бек, стек то один. Кстати, из мира фронта наиболее вкусно выглядят Vue и Dart/Flutter, а не эти ваши кривые React/Inferno. Для тырпрайза стандартом остаётся Angular, местами заменяемый на Ember.
Python тоже будут вакансии. Но это опять же — смотря для чего. Django скорее вредит в развитии (часто от питонистов слышу просьбу не называть в приличном обществе их джангистами), увязывать его с Flask вообще дичь (зачем?). Для Python есть для webdev более красивые и функциональные вещи — Aiohttp, Vibora, Sanic, правда они требуют уже больше усилий для написания кода (на самом деле выйдет по затратам +/- то же, что ). Но Python сейчас перекрывается по возможностям языком Julia. Есть теория, что последний вытеснит Python для многих вещей и нишами Python станут простые ML-задачи, быстрое прототипирование, скрипты автоматизации и обучение программированию. Если VM сделают полегче — возможно встраивание, вместо lua.
Где-то рядом с Python лежит Ruby. Он скорее у нас не популярен. Почему наши люди выбрали Python а не Ruby — вопрос. Rails по экосистеме была более взрослой, нежели Django. Но тут видимо вкусовщина. Ruby кстати тоже никуда уже в скором времени не денется и в том же СПБ рубисту живётся очень не плохо.
Для администрирования Python хорош, но есть опять же Perl7 и множество perl-скриптов, которые уже работают. Поэтому тут тоже не в пальме первенства.
Отсюда — что именно хочется от webdev? Просто востребованность на рынке — учите Python (Aiohttp, Django), учите NodeJS (MEAN). Но это если за еду.
Java vs Python. Что выбрать?

![]()
03.11.2020
![]()
59688
Рейтинг: 5 . Проголосовало: 9
Вы проголосовали:
Для голосования нужно авторизироваться

- Простота изучения и читабельность кода
- Сравнение типизаций Java и Python
- Производительность
- Табуляция, как часть синтаксиса Python
- Применение Java и Python
- Как будет происходить разработка
- Зарплатные ожидания
- Итоги
Выбирая язык программирования, хочется иметь ясную картину, разобраться в вопросе, какие языки популярные, главные и используются для решения большинства прикладных задач. И сегодня речь пойдет о двух флагманских представителях данной категории — Java и Python.
Оба языка не один год подряд входят в пятерку самых популярных языков программирования в различных исследованиях: индекс TIOBE, Stack Overflow Developer Survey, Octoverse GitHub и многих других.
В данной статье мы не собираемся становиться ни на сторону Java, ни на сторону Python. Язык программирования — это инструментарий и его выбирают под задачу, которую требуется решить. Наша миссия — продемонстрировать вам сферы, где особенности этих двух языков будет максимально эффективен. Ну и, конечно же, пройтись по главным аспектам Python и Java.
Давайте же приступим к их рассмотрению.

Простота изучения и читабельность кода
Java — это быстрый, безопасный и надежный язык программирования общего назначения. Python — также язык общего назначения, который отличается мощностью, эффективностью и высоким уровнем читабельности кода.
Python широко известен своей лаконичностью и простотой в изучении. То, на что в Java у вас уйдет несколько строчек кода, в Python может быть реализовано всего одной. Благодаря этому, пайтон часто рекомендуют тем, кто хочет максимально быстро войти в программирование.
Java же более “подробный” язык. Однако, его громоздкость позволяет создавать приложения с большей проработанностью и реализовывать более сложную логику.
Если взять одну и ту же задачу и попробовать ее реализовать как при помощи Java, так и с применением Python, можно отметить меньшее количество символов в пайтон-коде и меньше операторов, за которые “цепляются глаза” по сравнению с джава-кодом.
Динамическая типизация vs строгая типизация
Динамическая типизация (ДТ) означает исключение необходимости объявлять конечный тип переменных и функций во время написания кода. Таким образом, их типы выясняются во время выполнения программы автоматически. Это свойство присуще языку Python.
В Java же строгая типизация (СТ): конечные типы переменных и функций должны быть установлены на этапе компиляции. Это значит, что они должны быть прописаны вручную во время написания кода.
Как разница в типизации помогает/мешает в разработке?
Прежде всего, она влияет на проектирование и написание кода, а также на решение возникающих ошибок (так называемый “troubleshooting”). С одной стороны, динамическая типизация минимизирует количество кода и ускоряет его написание. Она также позволяет использовать обобщенное программирование, когда вы можете использовать один и тот же участок кода в работе с различными типами данных (например, алгоритм сортировки, работающий не только со списком целых чисел, но и со списком вещественных и даже со списком строк).
Тема связана со специальностями:
В свою очередь строгая типизация обеспечивает выявление проблем, связанных с типами, еще до запуска программы, ведь проверки типов выполняются на этапе компиляции, а не на этапе выполнения программы (как у ДТ). Это способствует и более быстрой работе кода. Также, СТ внедряет своеобразную дисциплину, которая не допускает хаос среди переменных и функций и дает полное представление о типе каждой из них.
Какая из этих типизаций лучше — достаточно дискуссионная и субъективная тема, а потому обойдем ее.
Производительность
И Java, и Python компилируются в байт-код и запускаются на виртуальных машинах. Это изолирует код от различий между операционными системами, делая оба языка кроссплатформенными. Но между Python и Java есть существенная разница. Первый обычно компилирует код во время выполнения, а второй выполняет компиляцию заранее и распределяет байт-код.
JVM (Java Virtual Machine) выполняет своевременную компиляцию всех программ или их части в нативный код, что значительно повышает производительность. Обычный Python этого не делает, но есть несколько вариантов, как этого добиться. Например, использовать интерпретатор PyPy.
В некоторых случаях разница в производительности между Java и Python бывает значительной. Простой тест двоичного дерева выполняется в Java в десять раз быстрее, чем в Python.
Табуляция, как часть синтаксиса Python
Одна из главных особенностей пайтона — отсутствие привычных для того же Java точек с запятой и фигурных скобок. Вместо этих элементов используются табуляция и пробелы.
Здесь та же история, что и в разделе о типизациях — оба стиля имеют много достаточно субъективных моментов, потому какой из них лучше — личный выбор каждого.
Визуально стиль синтаксиса со скобочками и точками с запятыми является более строгим. Он задает правила, по которым должен играть программист. При этом стиль с табуляцией более свободен и не загоняет программиста в визуальные рамки.
Отметим один важный нюанс. Во время кодинга на Python можно очень неплохо застрять на поиске ошибок в коде. Забыл в каком-то месте о табуляции, либо ошибся в ее выставлении на один пробел? Лови ошибки или неправильную отработку программы. А если ты новичок, то можешь даже не заметить, что дело именно в табуляции, и будешь долго копаться в коде, ломая себе голову загадками.
Применение Java и Python
Java прекрасно себя чувствует в мобильной разработке под Android и в больших энтерпрайз проектах, ориентированных на бизнес. По-другому эти две отрасли именуют Java Android и Java Enterprise. Обе сферы на данный момент очень актуальны и прибыльны.
Рынок Android устройств лидирующий в мире; ближайший конкурент — iOS от компании Apple. Работы в Java Android много и она достаточно разнообразная, начиная от приложений для малого бизнеса, заканчивая софтом для крупных игроков.
Энтерпрайз разработка подразумевает создание серьезной северной начинки для автоматизации задач большого бизнеса. Знаменательна эта сфера прежде всего своей сложностью. Много задач необычных, нестандартных, “со звездочкой”, однако это и привлекает программистов, обещая им интересные таски и меньше рутины.
Python считается более универсальным, чем Java. Его лаконичность приносит ему заметную востребованность в таких областях, как:
- разработка веб-приложений с использованием фреймворков Django / Flask (BackEnd направление);
- задачи системного администрирования, DevOps инженерия (написание скриптов);
- автоматизированное тестирование (Automation QA);
- работа с большими объемами данных, машинное и глубокое обучение, нейронные сети (Big Data, Data Science).
Если на бэкенде у пайтона есть серьезная конкуренция, то в системном администрировании и DevOps задачах у него практически нет равных. Написание скриптов на Python — одно удовольствие.
Его особенно любят и ценят там, где приходится работать с огромными массивами неструктурированных данных и проектировать нейросети. Такому народному признанию Python обязан обильному количеству разнообразных библиотек с открытым исходным кодом.
Если Java ориентирован более на Enterprise решения, то пайтону ближе e-commerce.
Как будет происходить разработка
В данном разделе приведем мнение Сергея Немчинского — программиста с 20-летним стажем, руководителя и владельца учебно-производственной компании FoxmindEd.
В одном из своих опубликованных видео на YouTube он сравнивает Java и Python и с уверенностью говорит: на Python вы будете писать плюс-минус понятные приложения, поскольку примерно 8 из 10 проектов необходимо создавать с нуля (веб отрасль). Это ведет за собой больше рутины, но вместе с тем снижает общую сложность разработки.
Сделав выбор в пользу Java, 8-9 из 10 проектов, над которыми вам предстоит работать, уже готовые. Ваша задача — заниматься их поддержкой и модернизацией. Это большие (иногда даже огромные) проекты со сложной бизнес-логикой и с большим количеством интеграций. Стоит учесть, что написанный до вас код (т. н. “legacy” код) — зачастую детище индо-азиатских собратьев, а потому работать с ним будет непросто — нервы пошаливать будут. Однако, вместе с трудностями приходит и разнообразие.
Таким образом, если сравнивать с Python, в Java вас ожидают более серьезные вызовы и более сложные задачи, вы будете скорее не что-то свое создавать, а дорабатывать уже существующее, но о скуке и однообразии можно забыть. Вариант с пайтоном полегче, но и рутины побольше.
Зарплатные ожидания
Здесь все очень просто: ваша ЗП напрямую зависит от ваших навыков. Таким образом и Java, и Python разработчик получают примерно одинаковую зарплату, если уровень их скиллов будет также примерно одинаков.
Если взглянуть на рынок, можно заметить, что у джавистов джуниоров денежный оклад выше, чем у пайтонистов, однако это связано с тем, что порог входа в Java сам по себе достаточно высок. Когда Python разработчик достигнет того же уровня по навыкам, как и этот Java разработчик, они будут почти равны в своих ЗП. Поэтому не сравнивайте цифры в обещаемых окладах — выбирайте то, к чему душа лежит. Попробуйте себя и в Java, и в Python, а там сразу будет видно, что вам более по вкусу.
Итоги
Резюмируя все вышеизложенное, отметим главные особенности обоих языков. Таким, образом, Java:
- быстрый, безопасный и надежный язык программирования общего назначения;
- статически типизированный, имеет строгие правила синтаксиса, а также высокую производительность;
- хорош при реализации задач со сложной логикой;
- очень популярен в мобильной разработке под Android и в Enterprise проектах, ориентированных на большой бизнес;
- рабочие задачи более сложные, чем на Python, однако и более интересные.
- язык общего назначения, который отличается мощностью, эффективностью и высоким уровнем читабельности кода;
- динамически типизированный язык, код более читабельный и лаконичный, отсутствуют скобки и точки с запятой в синтаксисе;
- производительность ниже, чем у Java;
- незаменим в системном администрировании, DevOps ремесле, очень популярен в вычислениях с большими массивами данных, а также в веб разработке;
- рабочие задачи более легкие по сравнению с Java.
Общий пункт: ЗП примерно одинаковая, если уровень скиллов и Python, и Java разработчиков будет также примерно одинаков
Так какой же язык программирования из двух рассмотренных лучше? А вот это решать вам, дорогие читатели, поскольку ответ зависит от многих субъективных показателей и у каждого он будет свой. Кому-то больше по душе строгость и дисциплинированность Java, а кто-то обожает лаконичность и простоту Python. Большую роль играет и сфера применения обоих средств создания кода. Не пытайтесь дать ответ на вопрос “Какой язык программирования лучше?”, сперва узнайте “Какой язык мне больше нравится? Какое ответвление IT мне больше по душе?”, а дальше просто двигайтесь в понравившемся направлении. Удачи в вашем выборе!
Выбирайте то, что вам по душе и вы никогда не прогадаете!
Как выбрать: Java или Python?

Java и Python – одни из самых популярных языков программирования, поэтому начнем мы именно с них. Оба языка я ценю и уважаю, но какой из них выбрать?

Выбирать, конечно, каждый должен, исходя из своих целей и намерений, а я могу дать несколько важных подсказок.
Использование языка на рынке
При выборе языка программирования смотрите, для чего он используется на рынке. У Java есть два главных применения. В первую очередь, конечно, это Java Enterprise: разработка серьезных масштабных корпоративных решений, автоматизация огромных корпораций. В принципе, на этом можно было бы и закончить, но есть еще одна сфера применения Java – это Android разработка. Общего между ними мало: мобильная разработка на Java больше похожа на разработку на Swift под iOS. Там другие решения и другие ограничения, по сравнению с Java Enterprise.
Python применяется более разнообразно. Это самый популярный скриптовый язык, и на нем можно быстро наклепать какой-то скриптик и отправить в продакшн. Так что он применяется практически везде. Мы пока не рассматриваем DevOps, Data Scientists, Automation QA, но вот любому программисту Python точно пригодится, потому что он используется для решений e-commerce.
Дело в том, что многим малым и средним бизнесам вполне хватает решений на базе готовых CMS – OpenCart, WordPress, WooCommerce, тысячи их. Например, сайт FoxmindEd написан на WordPress. Но есть и другие бизнесы – спортклубы, салоны красоты, прочие, — которым нужно, чтобы у пользователя был личный кабинет. Пользователь должен иметь возможность посмотреть свой профиль, поставить на паузу абонемент, заплатить, и выполнить другие действия, специфические для этого бизнеса. Писать такие решения на Java считается моветоном. Такие решения пишутся либо на PHP с фреймворком, либо на Ruby, либо на Python.
Enterprise-системы против быстрых решений
Итак, чтобы решить, кем бы ходите быть — Java разработчиком или Python разработчиком – посмотрите, что вас ждет. Java – это сложные решения, огромные, с множеством интеграций, с такой запутанной бизнес-логикой, что сложно объяснить знакомым, чем я занимаюсь.
Python – это плюс-минус понятные решения, вашу работу можно будет легко кому-то показать. Вот сайтик, смотрите, любуйтесь, можно похвастаться клиенту. И хотя решения на Python более презентабельные, в Java вызовы более серьезные. На Python, может так статься, вам придется клепать более-менее однотипные сайты.
Поддержка legacy или новые проекты
Следует учитывать фактор legacy. На Java 8, а то и 9 проектов из 10 это legacy проекты, написанные кем-то до вас. И вам нужно его саппортить, улучшать и расширять. Зачастую проекты написаны индусами и корейцами, и разобраться в них непросто. С одной стороны, этим не очень приятно заниматься, с другой стороны, это челленж.
А на Python 8 из 10 проектов вы будете начинать с нуля. С одной стороны, это хорошо, с другой – вы все время будете делать примерно одно и тоже, и вряд ли сможете несколько лет заниматься одним и тем же проектом.
Инструментарий
На Java, наверное, самый лучший инструментарий, который только существует в мире. Ему уже много лет, там обратная совместимость, любой инструмент отлажен до состояния идеала. Даже бесплатные инструменты типа Eclypse полнофункциональные и неплохие.
В Python вроде бы используются похожие инструменты, но для Java разработчика они выглядят бедноватенько. Учитывая, что Python не является языком строгой типизации, автоматически сделать с его инструментарием можно довольно немного. На Java можно делать и сложный рефакторинг, и вынос объектов, а на Python делать это автоматически просто рискованно.
Зарплаты специалистов
Наверное, первое, что интересует будущего разработчика – зарплаты. На сегодня мы видим на рынке следующее: разработчик на любом языке зарабатывает примерно одинаково, если у него одинаковые скиллы. У Java просто более высокий порог входа, и хотя зарплаты джавистов выглядят выше, там выше и требования, чтобы начать работу. Прокачайте свои навыки до того же уровня на другом языке, и тоже будет будете столько получать. Так что выбирать язык по уровню зарплаты я вам не рекомендую.
Темперамент и язык программирования
Можно попробовать сделать следующее: написать приложение на одном языке и на другом, и посмотреть, что вам лучше заходит. Вы, скорее всего, сразу увидите, что на Python легко и быстро стартовать. А Java – язык очень строгий, и чувствуется, что ничего не сработает, пока ты не сделаешь правильно. У меня от Java лучше ощущения, потому что она такая серьезная, фундаментальная, шаг в сторону – код просто не скомпилируется. Так что, если он компилируется, значит, большинства проблем там уже нету. А на Python все можно склепать очень быстро, и в продакшн, а проблемы проявятся потом. Многое зависит от вашего характера. Я, например, человек вспыльчивый, и мне нравится, когда инструмент меня притормаживает. А кому-то больше нравится, когда решение идет сразу на продакшн
Надеюсь, мои подсказки помогут вам в выборе языка программирования.
