Search
Write a publication
Pull to refresh

Почему именно этот язык?

Reading time3 min
Views7.4K

Дисклеймер

Плз не кидайтесь хейтом :)) Эту статью я написал как ответ одному из своих товарищей. Поэтому, если ты опытный разработчик, то ничего нового явно не узнаешь.

Почему используется именно JavaScript для браузера, а Си для драйверов?

Начнем с того, что каждый язык решает проблемы в своей предметной области и каждый создавался под конкретные нужды. Раньше все писали на ассемблере, потом на Си, потом стали подниматься все выше и выше по уровням абстракций и стали придумывать языки под конкретные нужды.

Каждый язык исполняется в своей среде, но в конечном итоге все переводится в байт код.

Приложения для десктопа пишутся на любом языке, где есть библиотеки для работы с графическим интерфейсом. Например, библиотека Qt существует на C++, Python. Java, PHP и на многих других.

На веб сервере можно использовать также любой язык, например PHP, Ruby, Java, C, Python, Perl, Go. Но не всегда экономически выгодно писать веб сервер на Си, так как скорость разработки на нем будет очень медленная и разработчика найти достаточно трудно, да и не факт что хватит денег на него. Чаще всего последнее время веб сервера пишут на PHP, Go, Python. На них достаточно высокая скорость разработки не высокий порог входа, поэтому найти специалиста гораздо проще. Но в банковском секторе веб сервера принято писать на Java, так как он имеет строгую типизацию, высокую стабильность и производительность.

В браузере мы используем JavaScript потому что браузер понимает только этот язык. Его изначально создавали для браузера. И только потом он уже вышел за пределы браузера и на нем стало возможным писать веб сервер, десктопные и мобильные приложения с помощью дополнительных инструментов.

На android устройствах прижилась Java, так как коду нужно было исполняться на разных версиях android и нужна была единая среда исполнения кода. Поэтому выбрали Java. Со временем появилась обертка на Java в виде Kotlin. Так же для высокопроизводительных приложений допускается написать часть программы на C/C++, но не все приложение. В 2018 году вышел фреймворк от Google под названием Flutter написанный на Dart на котором так же можно создавать мобильные приложения под Android и iOS. Ну и куда же без JavaScript, на нем тоже можно писать мобильные приложения, используя ReactNative.

На iOS принято писать на Swift, но так было не всегда. До 2014 года для iOS писали на Objective-C. Это оба языка детище Apple, так как и платформа их. Почему Apple не стала использовать уже существующий язык Си? Потому что это дорого и сложно, а значит экономически не выгодно. Гораздо проще создать новый язык, который будет заточен под огромную платформу и будет из коробки иметь все для работы с платформой. Еще под iOS можно писать на Flutter.

Conclusion

Язык выбирается с точки зрения удобства и скорости разработки и с точки зрения экономической выгоды для предприятия. Поэтому иногда приложения на смартфоны пишут на JavaScript, так как это дешевле и быстрее, а иногда и веб сервера пишут на Java или C#, так как важна стабильность и отказоустойчивость.

Bonus

Ниже приведен список всех языков программирования на сегодняшний день, если отталкиваться от википедии.

5th

8th

ABAP/4

Action Script

Active C#

Ada

Afnix

Alef

AspectC++

AspectJ

AspectLua

Awk

BCPL

Basic

Befunge

Brainfuck

Breeze

Byter

C#

C++

C++/CLI

CaesarJ

Cat

Cg

ChucK

Cilk

Clarion

Clean

Clipper

Clojure

CoSy

ColdFusion

Compose

Concurrent Pascal

ConcurrentLua

Corn

Curry

Cω — C Omega

D

Dart

DataFlex

Delphi

Deque

Dylan

E

Eiffel

Elm

EmptyScript

Enchilada

Erlang

Euphoria

F#

FALSE

FBD

Factor

Forth

FoxPro

Freelang

GNU bc

GPSS

Game Maker Language (GML)

Gentee

Golang

Groovy

Haskell

Haxe

Hope

IL

INTERCAL

Io

J

JOVIAL

Java

JavaScript

Join Java

Join-calculus

Joule

Joy

Julia

Kitten

Kotlin

LOLCODE

Ladder Diagram

Limbo

Lua

Lviv

MATLAB

MC#

ML

Malbolge

Maple

Mathematica

Matlab

Mercury

MetaQuotes Language MQL4/MQL5

Moy

Mozart

MultiLisp

Nemerle

NetP

OCaml

Object Pascal

ObjectTeams

Objective-C

Occam

Om

Onyx

OpenEdge Advanced Business Language

Oz

PHP

PL/M

PL/SQL

Parallel C#

Pascal

Perl

Pict

Piet

Pike

Pixilang

PostScript

Prolog

PureBasic

Python

QBASIC

REXX

Raven

Ruby

Rust

SPCLK

SQL

SQL-92

SR

ST или SCL

Scala

Scheme

Scilab

Self

Sequential Function Chart

Shell

Simula

Smalltalk

Staapl

Swift

Tcl/Tk

Transact-SQL

Vala

Virtual Machine

Visual Basic

Visual DataFlex

Whitespace

X++

X10

Zonnon

dBase

mjoy

occam

occam-π

xBase

АПЛ

Активный Оберон

Алгол

Алгол 68

Би

КОБОЛ

Компонентный Паскаль

Лисп

Лого

Модула

Модула-2

Модула-3

Оберон

Оберон-2

ПЛ/1

Паскаль

Планкалкюль

РАПИРА

РЕФАЛ

Робик

Си

Т++

Упрощённый Алгол

Фокал

Фортран

Tags:
Hubs:
Total votes 25: ↑4 and ↓21-13
Comments17

Articles