LINUX.ORG.RU

Си vs JS

 ,


1

5

Хотел было взяться за изучение Си, он юниксвейный, быстрый, и все такое, но почитал некоторые статьи, с тестами, в том числе и на лоре были недавно, и оказалось, что JS уступает в скорости Си всего лишь в 2-3 раза, причем, разрыв стремительно сокращается. Глядишь, через годик он может и обогнать Си.

С другой стороны, я че то подумал, ведь JS тоже кросплатформенный, к тому же он «универсальный», годиться и для веба и для системного программирования. Может случиться, что Си через годик-второй вообще будет никому не нужен.

В связи с этим, у меня сомнения. Браться за Си или не браться? Есть ли перспективы?



Последнее исправление: cetjs2 (всего исправлений: 1)

JS
и для системного программирования.

Сегодня 1ое апреля, да?

Си через годик-второй вообще будет никому не нужен.

У тебя правнуки быстрее появятся.

nanoolinux ★★★★
()

Я бы сказал си кросс-платформенный чисто номинально. То что он есть подо все платформы не делает софт написанный на нём таковым. Это помимо того что каждый си-компилер обладает набором уникальных расширений. Да и написание истинно кросс-платформенного кода это ад целое искусство.

Так что тут у js недетское преимущество.

true_admin ★★★★★
()
Ответ на: комментарий от Deleted

Ну, в перспективе, может стану разработчиком, пока, для себя, как хобби, но хотелось бы эффективности, лишним то, забивать голову не хочеться, учить все подряд, програмирование и так - дело нелегкое, а тут еще лишний синтаксис.

selena-gomes
() автор топика

javascript - это не язык для серьёзной разработки. это просто недоязычёк, придуманный компанией Mozilla в дань тренда моде, по сути своей - высер. если ты выбираешь зык только за быстродействие, то ты - быдлокодер.

anonymous
()
Ответ на: комментарий от selena-gomes

Разработчиком чего? И какой есть бекграунд?
Я сам не так давно прошел примерно через подобное, начинал с питона и ц, теперь вот что-то с цпп пытаюсь делать. Хочу отметить, что синтаксис дело десятое, его подсмотреть в примерах всегда можно.

Deleted
()

Глядишь, через годик он может и обогнать Си.

Долго ржал. ::)

Учи оба. Оба хороши. Си никуда не денется, был есть и будет.

Dron ★★★★★
()

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

KblCb ★★★★★
()

для системного программирования

Если ты про node.js или гномоинтерпритатор, то это «немножко» не то ::)

Dron ★★★★★
()
Ответ на: комментарий от selena-gomes

Тогда, если интересно чуть лучше узнать, как работает пк/ос/остальное, я бы начал с Ц.
И как тут уже говорили, Жс не станет быстрее ц.

Deleted
()
Ответ на: комментарий от KblCb

лучше не учить ни тот, ни другой

А какой учить? И как-же понимать, что оба языка являются кодогенераторами, если браузер обрабатывает, насколько я знаю, непосредственно JS?

selena-gomes
() автор топика
Ответ на: комментарий от Deleted

Жс не станет быстрее ц

Откуда такая уверенность? Я почитал немного по теме, оказалось, что еще пару-тройку лет назад он был в 100, если не больше медленней си, а сейчас уже 2. Даже асмджиэс какой-то есть. Разница сокращается стремительно, это факт.

selena-gomes
() автор топика
Ответ на: комментарий от selena-gomes

Где-то тут недавно проскакивали линки на статьи на швабре про жс и его скорость: там в многобукв вполне разумно объяснялось, что есть некоторый предел увеличения быстродействия. Кроме того, чем выше уровень абстракции, тем медленнее код. Так вот ц это высокоуровневый ассемблер.
Язык это инструмент, а инструмент нужно подбирать под задачу. Врядли кто-то станет кодить мк на жс или писать гигантские црм системы на ц.

Deleted
()
Последнее исправление: SMD (всего исправлений: 1)
Ответ на: комментарий от anonymous

зык только за быстродействие, то ты - быдлокодер

Я еще вообще никто. А так, не только быстродействие, я же написал в стартовом посте: универсальность. Это си, вроде всегда считался быстрым языком, не считая асма. А кроме этого, я читал, во многих источниках, что js — язык очень мощный, многие говорят, что это лисп, это, собственно, еще один аргумент, в пользу его изучения.

selena-gomes
() автор топика

Не стоит сравнивать эти два языка. Какой из языков учить зависит от того, в какой области вы собираетесь программировать. Драйверы, компиляторы, операционные системы - Си, веб-приложения - JS. Быстрее чем Си javascript не будет, не нужно экстраполировать данные ускорения джаваскрипта в будущее. Предел его оптимизации есть и он не ровня Си.

Если вы хотите взяться за программирование всерьёз, то учите Си, читайте Таненбаума и изучайте устройство компьютера и операционных систем. Плюс начала ассемблера для изучения выхлопа компилятора. Если вас интересует что-то прикладное, то лучше посмотреть в сторону Пайтона. Для начала. Если веб, то даже не знаю что посоветовать. JS для клиентской части будет нужен обязательно, язык приятный (с проблемами, но в целом хорош). Для серверной части (node.js и т.п.) его использовать я бы не стал. Но это сугубое ИМХО с налетом религиозной нетерпимости.

Weres ★★★
()
Ответ на: комментарий от selena-gomes

Универсальность - обман. Си куда более универсален, чем JS, но для конкретных задач есть конкретные языки. Не надо искать универсальных решений.

Weres ★★★
()

Глядишь, через годик он может и обогнать Си.

А там и до первой космической недалеко, ага.

korvin_ ★★★★★
()
Ответ на: комментарий от selena-gomes

учить все подряд

Это самое лучшее, что для себя может делать программист.

PolarFox ★★★★★
()

жирнота, серьезно. скорость то тут причем? у них абсолютно разное применение.

umren ★★★★★
()
Ответ на: комментарий от umren

у них абсолютно разное применение

Пока разное, да, но где гарантия, что через некоторое время он не будет использоваться вместо Си? Ведь раньше он был только в браузере, теперь, на сервере. А если он будет быстрей Си, то почему бы его не использовать и для системного программирования? Весь вопрос сводится к наличию либ? Сделают подключение сишных либ на первое время. А в универсальности, как уже было сказано выше, он выигрывает. Было время, когда оси на асме писали. Были и другие ЯП, Си не сразу тоже пришел, в конце концов.

selena-gomes
() автор топика

Посмотрю я, как ты на жабоскрипте будешь писать всякие вычислялки или железячки обслуживать!

Eddy_Em ☆☆☆☆☆
()

Глядишь, через годик он может и обогнать Си.

взяться вам надо за изучение архитектуры ЭВМ, а потом за ЯП.

dib2 ★★★★★
()
Ответ на: комментарий от nanoolinux

JS
и для системного программирования.

Сегодня 1ое апреля, да?

а что, я считаю что выполнение JavaScript в systemd появится в течении года :)

dib2 ★★★★★
()
Ответ на: комментарий от dib2

выполнение JavaScript в systemd появится в течении года

Сферическое ненужно в вакууме.

Deleted
()
Ответ на: комментарий от anonymous

С использованием libusb? Не смеши мои тапочки! Такую фигню даже на пхытоне можно набыдлокодить.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от anonymous

JS — псевдо-ЯП с очень узкой областью применения.

Я до сих пор негодую, что в браузерах не С используется, а этот ужас! Когда пишешь скрипты, довольно-таки часто бывает, что не хватает возможностей С.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от selena-gomes

Ведь раньше он был только в браузере, теперь, на сервере

«На сервере» на нём пишут только неосиляторы чего-либо кроме жс дизайнеры.

nanoolinux ★★★★
()
Ответ на: комментарий от Eddy_Em

NaCl.

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

anonymous
()
Ответ на: комментарий от Eddy_Em

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

Ух ты! Как интересно! Например?

anonymous
()
Ответ на: комментарий от nanoolinux

«На сервере» на нём пишут только неосиляторы чего-либо кроме жс дизайнеры.

Ну надо же, какой характерный пример попаболи. Весь инет наполнен нытьем плюсового и прочего быдла, о том что они не понимают [асинхронность, фп, замыкания, прототипы] js, с последующим маканием в говно, при этом все недопистоны усираются накостылить жалкие пародии фичь, которые в JS исаропки, а в свободное время срут кирпичами на форумах, рисуясь перед школотой.

anonymous
()
Ответ на: комментарий от anonymous

Мама, мама, у меня под кроватью крестовики!

Deleted
()
Ответ на: комментарий от anonymous

Ты сначала русский подучи, трендьмода, хренова, а потом возьмись за историю. Какая нахрен мода, он назван JAVAscript из-за моды на жабу, за это даже заплатили. Ты различаешь вообще понятия «назван» и «создан», идиот?

anonymous
()
Ответ на: комментарий от selena-gomes

ок, допустим ты выучил js который начнут через 5 лет использовать в системном программировании широко, чем ты будешь заниматься эти 5 лет? что ты будешь делать когда встретишь legacy написанный на C? закроешь и перепишешь с нуля на JS?

Если тебя интересует системное программирование то C это первый язык который ты должен знать.

umren ★★★★★
()
Ответ на: комментарий от anonymous

Думаю ты понял. Если появится возможность писать «сервера» на хтмл6 с цсс4, то хипсторы будут только рады. Сразу появятся всякие гуру, шарлатаны в этой области, всякие идиотские попытки навелосипедить то, что уже есть в нормальных языках. Жс в бэкенде ненадолго.

nerdogeek
()
Ответ на: комментарий от nerdogeek

Жс в бэкенде ненадолго.

Хотелось бы верить, аргументируете? community adoption идет полным ходом той же ноды.

umren ★★★★★
()
Ответ на: комментарий от umren

Сервер под нагрузкой страдает от фрагментации памяти. Как с этим в жс? Можно написать аллокатор? Желательно эффективный в многопоточной среде, как tcalloc и ему подобные.

Может есть возможность делать маппинги файлов? Что будет, если вдруг понадобится многопоточность? Есть ли возможность организовать lock-free структуры данных?

nerdogeek
()
Ответ на: комментарий от dib2

JavaScript в systemd появится в течении года

питон там уже есть. JS просто не у дел.

anonymous
()
Ответ на: комментарий от Eddy_Em

Если бы ты, хоть отдаленно представлял, что такое написание скриптов на JS, ты бы смог понять, какую чушь ты сейчас написал. Это просто п*ц, нет слов.

полноценные функции

В си есть полноценные функции? Это которые лямбды? First-class? LOL

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.