Ява таки умирает?

Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті

Стэнфорд отказался от Java в пользу JavaScript для курса Intro CS.

Профессор Стэнфордского университета, который написал популярную книгу по Java — и преподавал Java в течение 15 лет, решил отказывается от Java в пользу JavaScript для его вводных курсов по информатике.

На сайте Стэнфорда объяснили, что их новый курс CS 106J «охватывает тот же материал, что и [старая версия курса] CS 106A, но уже используется JavaScript, самый распространенный язык для создания интерактивных веб-страниц...».

Это не конец Java, которая имеет десятилетний опыт, ценные инструменты и базы....Что думаете?

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn

Найкращі коментарі пропустити

хорошие были мотоциклы...

Хоронили джаву, порвали двух хейтеров.

Тут COBOL никак похоронить не могут за десятки лет, а уже на Java посматривают... :)

а может студенты стали тупее и не тянуть джаву со старта, поэтому им подсовывают джс?

Возьмите голое железо, поставьте Винду, на десктопе создайте hw.html:
< script >
alert("Hello, World !");
< / script >
Дабл кликаете и видите работающую программу на жаваскрипте.
А теперь представьте, сколько усилий надо для того же на Жаве ?
То есть entry level на JS намного ниже чем на Java. Поэтому ЖС лучше для вводного курса по компоьютер сайнс, и данная новость не имеет никакого отношения к перспективам Жавы.

Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Якщо почати вибирати мову під задачу, а не задачу під мову, то можна вберегти 5ту точку від розриву

Вебщиків стало занадто багато і ракові клітини від них заразил професора. Або він з глузду з’їхав.

А где нынешняя ниша Джава?

На десктопе сплошные мелкомягкие и яблоки == C++/C#.
Вэб — пучёк хипстерских технологий.
Мобильные устройства — либо хипстерщина под вэб-клиента, либо нативный клиент (Джава нативна, лишь на андроидах).

Раньше Джава гуляла на серверах — но теперь, похоже, всякие «высоконагруженные решения» из зоопарка языков/технологий, вытесняют Джава и оттуда.

А ещё где?

Java это в первую очередь платформа. JVM используют многие хайлоад проекты тот-же twitter soundcloud — jvm stack. Много системных тулов (хотя выбор java в этом случае немного странный) например, helios от Spotify. Потому как язык Java возможно и исчерпал себя но jvm и куча проектов связанных с этим стеком никуда не денутся.

JVM используют многие хайлоад проекты тот-же twitter soundcloud — jvm stack
soundcloud использует go, а не JVM.

Возможно слезают, но судя по всему soundcloud.com/…​7-backend-engineer-berlin пока JVM доминирует.

Scala is the main language we use
Фе!!! Они что, перешли с Go на Scala? В 2012 году были на Go — developers.soundcloud.com/blog/go-at-soundcloud .
Они что, перешли с Go на Scala?
In your face :)
Раньше Джава гуляла на серверах — но теперь, похоже, всякие «высоконагруженные решения» из зоопарка языков/технологий,

Например ?
А ещё где?

Да везде.

Скачал апку из айтюнса — джава (почти весь apple бекенд на яве, ~1kk серверов);
Получил пуш нотификейшн на телефон — джава (firebase);
Послал почту по гмылу — джава;
Поредактировал доки в гугл докс — джава;
Твитнул — джава;
Запостил резюмешку в линкедин — джава;
Початился в слеке — джава;
Послушал музычку в спотифай — джава;
Посотрел фильмец в нетфликсе — джава;
Закал таксишечку по уберу — джава;

Продолжать :)?

Не треба, бо в адептів Go зараз почнуться черговий сказ та корчі.

Замени джава на джаваскрипт и будет правда.

И откуда JS в приложениях на мобилке? ;)
нет, конечно, его туда некоторые впихивают, но не в таком же количестве.

Бекенд фейсбука строиться вокруг распределенного хранилища на основе:
Cassandra — java
Hadoop — java
HBase — java
Hive — java

А виртуальная машина на чем работает?

Послал почту по гмылу — джава;
Мне кажется у них вообще все на джава. Это они в массы только швыряют дерьмо типа ноды и ангуляра (ну может у себя внутри пользуют разве что в каких-то тулзах).

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

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

Возьмите голое железо, поставьте Винду, на десктопе создайте hw.html:
< script >
alert("Hello, World !");
< / script >
Дабл кликаете и видите работающую программу на жаваскрипте.
А теперь представьте, сколько усилий надо для того же на Жаве ?
То есть entry level на JS намного ниже чем на Java. Поэтому ЖС лучше для вводного курса по компоьютер сайнс, и данная новость не имеет никакого отношения к перспективам Жавы.

entry level на JS намного ниже чем на Java

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

у JavaScript эволюционная траектория немного другая, и там не нужно знать всю «глыбу» неподъёмную.

Не совсем согдасен. Например тонкости вейт/нотифай знать уже впринцыпе не нужно. Верней это продолжают спрашивать на собесах, но в реальных проджектах никто не юзает. Другие штуки точно также устаревают.

дык, в том-то и фигня, что Джава состоит из кусков, про которые написано в книгах,
но «тут юзаем — тут не юзаем — тут рыбу заворачивали».
Мудрые гуру пишут бестселлеры про грабли Джавы.

Мудрые гуру пишут бестселлеры про грабли Джавы.

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

JS — не граблі, а ведерце. Всіх, хто намагається використовувати його саме як граблі, спіткає невдача

Ну в джс на джуниора тоже надо знать дофига чего

> обрастая фишками, граблями,фреймворками.

Ну да, так только Джава. Во всем остальном другие законы.

у языка возможны 2 траектории развития:
— эволюционная, как у Джавы, когда язык тащит за собой все старые рудименты,
и
— революционная, как у JS- фреймворков, когда начинают всё с «чистого листа»

Я бы сказал что джаваскрипт каждый год новый.

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

революционная, как у JS- фреймворков, когда начинают всё с «чистого листа»

Потому что основа языка — один сплошной рудимент.

Это не лучшее сравнение.

человек далёк от совершенства, имеет массу конструктивных проблем, и находится на вершине пищевой пирамиды.

Установить компилятор, создать 1 файл и запустить 2 команды в терминале не дольше.

Жависты говорят «установить JDK». Задача непосильная для обычного юзверя. А потом еще в терминале (о.О — это шо такое ?? а, цмд ...) набивать в страшном черном экране страшные белые букафки ...

Незнаю как сча, когда то можно было под винду скачать бандл идеи с включенной джавой. Пару раз некст некст и готово.

Давеча скачал IntelliJ IDEA, Java SDK и собственно все. Hello world взлетел. Дальше нужно было разобраться с classpath, но то такое.

А потом еще в терминале (о.О — это шо такое ?? а, цмд ...) набивать в страшном черном экране страшные белые букафки ...
что касается JS, то эмбедить скрипт в HTML, а потом смотреть вывод в консоле браузера — это не так удобно, по сравнению с прямым выводом в консоль.

Открыл консоль браузера и прям там код пишешь

а консоль браузера доступна все время и всегда

Але ж людна прийшла вчитися на програміста, а не оператора ПК і це який рівень інтелекту і мотивації потрібно мати для того щоб не осилити особливо на фоні того що воно якось потрпило в ВУЗ.

Когда совсем с 0, то можно и не осилить. Я помню когда-то не понимал вообще как бутстрап подключить. Ну и так далее.

прям як у старі часи Basic був при включенні компа на 8-бітках :-)

навіть на x86, IBM PS/2 model 25 чи 30, при включенні компа без дискети, можна було натиснути F1 і потрапити у Basic

у Windows 98 ще був редактор editor, котрий був насправді qbasic.exe

про Linux мовчу :-), там у середовищі 1 крок до інсталяції купи мов програмування

создайте hw.html:
< script >
alert("Hello, World !");
< / script >
окей, теперь давайте создадим таймаут, б*?"№! что это?? какие еще блокирующие операции??!

Вы точно о студентах Стэнфорда говорите, ибо как 90% смогут рассказать как работает ивент луп лучше большей части доучан?

смогут, а параллельно объяснят что не выйдет приложения в одну строку. ентри левел может и ниже, но из распространенных яп это единственный представитель лямбда программирования. Шаг преподавателя Стенфорда нельзя оценивать только по уровню вхождения, в целом как и перспективы ява, хотя это безусловно нанесет некий урон.

А за чем это в классе компьютер сайнс???

нисколько усилий для этого не надо на Яве.

То есть entry level на JS намного ниже чем на Java. Поэтому ЖС лучше для вводного курса по компоьютер сайнс, и данная новость не имеет никакого отношения к перспективам Жавы.
Разве computer science не подразумевает перед написанием кода иметь уровень достаточный для установки любой среды разработки и IDE?

А для CS обов’язкова наявність IDE?

Может я неправильно понимаю CS. Но мне казалось, что умение настроить среду разработки должно в нее входить. И без разницы, будет это java, nodejs, с# или go.

Вміння встановити програму та налаштувати її — це банальне системне адміністрування.

ну в универе были предметы посвященные тому ка в ворде открыть документ, как сохранить... это разве не оно? или у вас небыло?

Ну как бы к CS ближе гарвадский курс CS50 или кембриджский CS A&AS Level.
Хотя мне кажется вы просто шуткуете)

Я про киевские универы, и нет, не шуткую, таки были.

в киевских универах конечно же не CS называется, а введение в специальность, операционные системы, основы программирования или как-то так.

CS (Computer Science) на рус. Компьютерные науки, название моего направления и да у нас было ооочень много курсов по ворду.

тут имеется ввиду CS в узком смысле. Как начальная база, для айтишных специальностей.

І що? Це може мати якесь значення для п’ятикласника в ЗОШ а не для студента ВУЗ. Та й це все ж таки не задача написати за 30 хвилин якусь програму на нічого про програмування не знаючи.

Шёл 2063 год. Создатель лучшего в мире языка программирования NewGoodAndCheckedByTimeTechnologyKiller заявил: «Конец Java не за горами!!!».
Восторженные представители супер модного течения бипстеры начинали усиленно изучать тонкости революционной технологии, а организаторы конференций уже подсчитывали прибыль от проведения очередного мероприятия NewGoodAndCheckedByTimeTechnologyKiller Summer 2063.

Люди стали всё чаще видеть рекламу 3 недельного курса по NewGoodAndCheckedByTimeTechnologyKiller с гарантией трудоустройства в ТОП-5 аутсорс компаний Украины.

С++ (57 версия которого вышла весной этого года), сохраняет 3 позицию в рейтинге языков программирования.

P.S.: Когда-нибудь, все поймут, что ни одна технология, которая развивалась многие годы, и которой пользуются десятки и сотни тысяч (иногда и миллионы) людей не может быстро и бесследно исчезнуть (да, и Windows тоже).
Но, это совсем другая история...

С++ (57 версия которого вышла весной этого года), сохраняет 3 позицию в рейтинге языков программирования.
Забыли про go, который к этому времени будет на первом месте пятый десяток лет. Слоупоки все еще ждут, когда же в нем появятся дженерики с эксепшнами и наследованием...

напомнило: www.youtube.com/watch?v=b2F-DItXtZs

вообще, у меня закрадываются подозрения, что валялкин на самом деле есть supervised deep-belief trained neural network, натренированная @idanyliuk для защиты golang на dou.

А вообще есть вариант, что квантовые компьютеры получат широкое распространение и весь наш софт пойдет на помойку, потому что там модель вычисления совсем другая.

Сделают runtime, пока не напишут новый софт.

Иногда таки может. Например, Flash.

Ну конечно...
Я до сих пор вакансии встречаю :)

И это только у нас:
www.linkedin.com/…​obs/flash-developer-jobs

Целых 7 вакансий на все США. Сравните с Java — 4976 вакансий на той же территории.

И всё-таки, Flash не бесследно канул в лету :)

Прям история Angular 2 and TypeScript lover

Мне как-то пофиг, я нею всё равно не пользуюсь )

последний пример, на джаве написанна небольшая система — подключение к сиквелу, отбор данных, прогонка данных через NLP систему и выгрузка данных в трипл стор и эластик. Трудозатраты — 2е человеко-недели. Основные затраты — это интеграция с NLP системами так как они внешние и нада пользовать их АПИ. Вопрос- проверить что все работает качественно использую референсные данные, и нада побыстрее. Ответ — на питоне за 4 часа написано 80% этой же системы и проверенны результаты. Кому нахрен нужен язык с такими трудозатратами ??? Остаются конечно области применения, но все меньше и меньше.

на питоне за 4 часа написано 80% этой же системы
Закон Парето, не? какой вариант писался первым, где вы прошлись по всем граблям?

особо граблей не было, в основном возня с форматом жсонов

подключение к сиквелу
две строчки
отбор данных
одна строчка
прогонка данных через NLP систему
хз если модель обучалась до этого то исмользуя python/R — 2 строчки (загрузка модели и предикт)
и выгрузка данных в трипл стор и эластик
две строчки — итого на все минуты 4 )))

Я так понимаю шо какая то «прогонка» через какието внешние системы, шо это за муть хз, что 2 недели надо мутить.

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

ну он разбил на 4 пункта, 3 из которых занимают по 2 строчки. Логично было предположить что с моделей когда то давно трахались, потом ее сохранили в какой то бинарник того же языка и уже обученую модель надо просто грузануть в память — это 1 строчка.

используется внешняя система через рест апи, но для нее нада подготовить данные и потом от нее нада тоже данные конвертнуть в нужный формат.
может я так понимаю, так как питон не сильно «богатый» язык, пришлось джаву тулить?
сразу видно что на яве не писал кода, там одна инициализация сиквела 2е строчки , плюс трай кеч — две строчки
 Я про пытон писал, чуть не догнал первого твоего коментария. Да таки джава разбухлое шо ппц, что б 2 недели там ипатся.

сразу видно что на яве не писал кода, там одна инициализация сиквела 2е строчки , плюс трай кеч — две строчки

А в питоне трай кетч есть ? И как отработать все исключения ? Или там все построенно на парадигме «Поламалось? И **й с ним!»

Может они таки перепутали Java и JavaScript?

а я наивно думал, что вечен только Go)))

а я наивно думал, что вечен только Go)))
Вы всё верно думаете, вечнее Go нет ничего.

Все языки умирают, в том числе Java, JavaScript, C#, C++, С, Rust, Erlang, Python, Ruby и т.д. А все потому, что скоро все будут писать сверхбыстрый код на Golang.

А потом увидят что старая добрая Ada быстрее хипстерского Go и перейдут на Ad-y.

не) старый добрый ассемблер ;)

Кстати а вы знали что код на Го быстрее ассемблера?

А еще у свет нет возможности создавать горутины, а в го есть, так что свет обречен на проигрыш гениальному творению под названием Го

Вопрос с кем/чем можно по"батся больше — будет философским, Света (если повезет) ограничится десятком поз, а поток граблей от GO будет постоянным :D

во, блин, досада :( везде этот вездесущий Go. Прям как президент одной соседней страны))

Я уже было понадеялся что на Го преподовать перешли. Вот где круто бы былобы

Если мне не изменяет память, там был лисп, потом С++, потом ява, терь жс.
И тоже говорили что С++ умирает.

так лисп уже тоже вовсю помирает который десяток лет, а вы говорите за плюсы и джаву)

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

С точки зрения трудозатрат, закупки материалов, найма преподов, и прочим расходов ВУЗа,
научить Джаве труднее_дороже, чем Жаваскрипту.
Поскольку абитуриент не видит принципиальной разницы между тем и другим (см статистику з\п), то зачем ВУЗу тратить больше.

Это просто бизнес.

А спрос на Джава разработчиков будет расти, имхо.

прим:
я подразумевал порог вхождения, у Жаваскрипта он ниже, если не ошибаюсь.
Дальше, в работе, всё будет усложняться, и работа на Джаваскрипте не проще, чем на Джаве, к.м.к.

Камон...

Как вы так сравниваете, ума не приложу. Простейший синтаксис во всех C-подобных языках изучается по аналогии за пару дней/часов. Но вы же не подразумеваете под порогом вхождения в Java его базовый синтаксис.

Обычно когда говорят про Java, говорят про OOP, структуры данных, оболочку, среду программирования. Вот это настоящий порог, верно?

Теперь берем JS и смотрим не только на базовый синтаксис. OOP в JS достаточно сложное и врубиться в него с разгону не так просто. Гляньте только на то как создается объект «класса». Чего только стоит строчка:

Let proto be the value of calling the [[Get]] internal property of F with argument «prototype».

Но самое смешное, что JS это функциональный язык программирования и пока ты не врубишься в эту парадигму — языка ты не поймешь, а будешь постоянно тупить где мне нужно применить bind, а где у моего this лексическая видимость. Знания в структурах данных компенсируются сложностью механизма неявного(и явного тоже) приведения типов. В оболочке тоже куча своих нюансов типа того как работают всякие Date, XMLHttpRequest и другой хлам. Про среду вообще молчу, попробуйте чето засетапить в gulp или webpack.

Просто для джавы кроме ооп и среды прогрпммирования нужно еще бы знать кучу стандартных либ. Коллекции, малтитридинг, ио, итд итп. Причем джуна с такими знаниями никто не возмет, потому что еще нужны в работе спринг хибернейт и еще 100500 фреимворков.

Тоже легко парировать. В JS нужно знать стандартные well-known либы типа hammer.js, moment.js, jquery, lodash. Если говорить про специфические либы под фреймворк, то тут вообще туши свет, можете глянуть на количество зависимостей в package.json в стандартном boilerplate . Коллекция считай структура данных, про них уже говорил. Вместо мультритрейдинга, надо знать как работать с Web Workers. С фреймворками вы вообще офигеете, если я начну перечислять их в JS.

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

Возможно, 2 или 3 года назад. Вообще пик был на стыке 2015/2016, все любители звездочек на гитхабе смогли реализоваться. И любители попиариться на статьях типа «Intro to React» или «Angular 101» давно набрали подписонов в twitter =) Сейчас хайп стихает и дурдом заканчивается. Среди фреймворков есть 3 лидера и инфраструктура вокруг них наращивается. Возможно даже через еще 2-3 года все станет стабильно.

все станет стабильно
Стабільно погано...
3 лидера и инфраструктура вокруг них наращивается.
Реакт, Ангуляр, Вью?

Они самые. Еще чуть дальше выглядывают ember.js и meteor.js.

Я чето думал они дохлые, по крайней мере у нас жабаскриптеры активно фигачат на реакт + експресс, типа самый приятный и вменяемый мейнстрим.

ну как бы Ember.js живее живых а вот метеор сдал, да

Вы же понимаете, что эта «стабильность» закончится в тот же миг как какой-то кулкид с ФБ или Гугла напишеш Реакт++ и начнет вкладываться в маркетинг.
Проблема (Преимущество?) джс экосистемы в том, что здесь никогда не будет бородатой стабильной экосистемы и есть всегда свобода выбора. Потому стек типа Java/Spring/Hibernate, Scala/Play, Ruby/Rails здесь невозможен.

Годные гребцы за неделю перелезут на новый фреймверк и даже не повозмущаются. Главное что бы архитектура проекта была правильная.

Согласен, но суть же не в этом.

а если годным JS гребцам велят на Джаве начать работать?
перелезут или бросят вёсла?
(вообще бы, топик на эту тему наверно неплохо)

Думаю, если до этого писали на TypeScript тоже довольно просто будет перейти на Java. По крайней мере с C# на Java совсем не сложно — они очень похожи.

По крайней мере с C# на Java совсем не сложно — они очень похожи.
только для джунов они очень похожи, синьоры при переходе в лучшем случае становятся мидлами и уже не растут в синьоры, пишут как на прошлом языке

Ну, хз, у меня выборка небольшая, вам виднее, наверное.

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

Ну на модерновый жс и реакт куча народу перелазила чисто потому что легче делать юайчик на реакте, чем на жквери. И ничего, гребут. Главное что бы был человек который поможет поревьювить код и указать на ошибки.

синьоры при переходе в лучшем случае становятся мидлами
Это справедливо между любыми языками, наверное. Вопрос сколько человек будем мидлом.
и уже не растут в синьоры
Опять же, у меня выборка нерепрезентативна, зависит от разработчика.

Наши точно бросят весла и перейдут на соседнюю галеру.

Я думаю, что приложений на Java столько, что мы уже состаримся, а она еще будет отмирать. А сколько библиотек и фреймворков на Java?

Венки уже вынесли? %)

Я в 2060-х уже на старости лет еще буду зарабатывать тем, что буду саппортить код написанный на джаве.

Java тогда еще будет. Но будет ли саппорт?

Ну саппортят же до сих пор код на коболе, написанный в 60-х/70-x/, т.е. прошло уже почти 40 лет, почему вы думаете, что миллионы строк кода на джаве куда-то денуться за 40 лет.

Да я как-бы не о legacy, а вообще, дожить бы :)

Здесь не угадаешь. Но вот джава умрет, когда последнему джависту упадет на голову последний сервер на котором раниться код на джаве. Но не раньше. Многие до этого момента не доживут.

Не все сразу. Надо немного подождать.. :-) Кстати, туда же — geektimes.ru/post/265784
«Министр транспорта Франции обещает, что „оборудование будет обновлено к 2017 году“. Фиакр считает, что это слишком оптимистичный прогноз. Он уверен, что обновление в лучшем случае произойдёт к 2019, если не к 2021.» — а вы тут Java хороните :-)

А на Коболе кто будет код саппортить?

Как умрут последние кобольды коболщики, так и перестанут саппортить и будут переписывать на яву.

а в MIT Scheme заменили на Python. Но это же не значит, что наступил конец Scheme)

Так что насчет джавы переживать думаю точно не стоит)

Только для интро курса, но по желанию можно также проходить на Scheme.

Тут COBOL никак похоронить не могут за десятки лет, а уже на Java посматривают... :)

Это не конец Java, которая имеет десятилетний опыт, ценные инструменты и базы....Что думаете?

Какдый раз, читая такие статьи и вопросы, вспоминаю классика:
«Давай по новой, Миша. Все <тлен>.»

Это вы еще не в курсе про флеш и экшнскрипт

Хоронили джаву, порвали двух хейтеров.

Cначала винде капец, а потом сразу джаве

Cначала винде капец
Соблюдайте орфографию, в конце концов! Пишется через ’е’ и слитно — вендекапец.

а может студенты стали тупее и не тянуть джаву со старта, поэтому им подсовывают джс?

джава проще джс, так что это довольно странная мотивация

Строгой типизацией, к примеру, если говорить об уровне лабораторок.

Помогал не так давно приятельнице-тестировщице с одним примером на Джаве... Поймал щас себя на мысли, что если в «систему уравнений» ввести ещё и «переменную» нестрогой типизации, то для начинающего совсем амба...

Сам, виноват, начинал на Бейсике Спектрума, где типов вообще не было. Правда, более-менее серьёзные вещи я писал уже на Турбо Паскале, а сформировался в Делфи...

очень сложно писать типы. А вообще, хорошо сделан typescript: хочешь — типизуешь или нет

Я щас больше о простых типах и извратах с === undefined и прочими приведениями типов, там, где в наших «нормальных» языках всё железобетонно.

undefined нормальная тема)

TypeScript это решает, благодаря types inference.

Сам, виноват, начинал на Бейсике Спектрума, где типов вообще не было.

шо, ні інтеджер, ні стрінг, ні флоат, ні масивів?

Все это конечно же есть в Бейсике на Спектруме) Там только логических типов нет в современном смысле — там числа 0 и 1. Чел наверное призабыл. Но динамическая типизация не означает ,что типов «Вообще » нет)

Виноват, точно были :-) Старость не радость, в последний раз я на нём что-то писал в 1998 году :-)

Если не изменяет склероз, в Бейсиках того поколения (и не только на ZX) вполне можно было делать вещи типа

10 LET A = 3.1415
20 LET A = "Hello world!"

и интерпретатор даже бы и не пикнул. Суффиксы типа % и $, указывающие на тип переменной — это уже появилось в чуть более продвинутых интерпретаторах на PC, и то, я не уверен, что интерпретатор запрещал присвоение несоответствующего суффиксу типа данных.

обычная динамическая типизация. я же писал выше.
LET -переприсваивает, обнуляя старую переменную -не вижу в чем смысл вашего замечания?

Нет, я с этими суффиксами сталкивался именно в версиях «того поколения», Apple — уверен на 200%, MSX — на 2/3.

Знаки бакса у обидвох версіях

www.landsnail.com/a2ref2.htm

www.msx.org/wiki/LET

Там ще й функції маніпуляції стрічками на $ закінчуються
www.msx.org/…​ry:MSX-BASIC_Instructions

Для Apple, эта страница описывает так называемый INT-BASIC, а был ещё и FP-BASIC (который, AFAIR, там грузился отдельно, а не в ПЗУ). На Агатах поставлялся в базе только FP-BASIC (INT можно было добыть отдельно, но мало кто делал).
Для FP-BASIC картина другая:
знак ! или его отсутствие — float (специфический местный, 5-байтный)
знак % — integer (2 байта)
и да, знак $ — строка (до 127 байт? не помню тут точно)

К слову, на Агатах вместо $ рисовался на том же коде символа знак ¤ (это вообще была «европейская» адаптация ASCII, в доюникодную эпоху). Мы его называли «клоп».

щось таке пригадую про FP-BASIC, я колупався колись з клоном Apple ][e — Правец-8C

Для половины студентов Стенфорда, например работать «фул-стеком» это как идти на свободную кассу.

Очень похоже, что вузы опять опоздали :)

Популярность JavaScript вызвана, в первую очередь, популярностью браузера как платформы. Сам же JS еле-еле держит оборону, на которую нападают во всем фронтам:

1 Мобильные приложения вытесняют веб
2 Рост популярности типизированных языков: TypeScript + Angular растут очень быстро
3 WebAssembly (wasm) — замена JS на браузерный байт-код дело времени.

И как итог — JavaScript за год переместился с 7 на 8 место в рейтинге самых популярных языков программирования.

WebAssembly (wasm) — замена JS на браузерный байт-код дело времени.
Сколько мы уже эту мантру слышим? Надо только немножко подождать, да? :)

Собственно, JavaScript уже по факту и стал браузерным байт-кодом. Посему WebAssembly так тормозит — он просто не нужен.

можно будет откзатся от DOM/HTML/CSS и тогда сразу будет нереальный буст производительности, и будет ReactNative поверх всего этого

Мобильные приложения вытесняют веб
особенно те мобильные приложения, которые написанны на React Native)

В React Native таки нет веба :) не нужно его путать с PhoneGap и подобными решениями. JavaScript там есть, но пользовательский интерфейс полностью родной для мобильной платформы.

В React Native таки нет веба :)
там есть реакт, который есть в вэбе :)
JavaScript там есть, но пользовательский интерфейс полностью родной для мобильной платформы.
а это значит, что в мобильных приложениях (в нативе) нет веба и никто никого не вытесняет. :)
Мобильные приложения вытесняют веб

То-то сейчас столько шума вокруг progressive Web apps ;)

Ты что! Ведь это передовой язык в наше время!

Давно уже на Delphi перешли. У нас все путем в вузах, не надо тут на них бочку катить.

В 2008 поступил на КН в Хмельницкий Национальный Университет и там был C#, Паскаль был только в школе в 2006...

В чем смысл? В универе учат концнепции и компьютер сайнс. Паскаль для этого подходит прекрасно. Когда придет пора работать, студент сам выберет язык программирования исходя из реалий рынка, и быстро освоит, если действительно учился и не тупой от природы.

Смысл например в отсутствии мотивации учить ещё один совершенно ненужный язык.

ну да ненужный, ну не то чтобы совсем уж совершенно:
jobs.dou.ua/…​acancies/?category=Delphi
www.embarcadero.com/ru/products/delphi

дельфи сильнее, чем руби или пайтон, просто борланд провтыкал свое счастье..
Известное программное обеспечение, созданное на Delphi

Стоп, просветите глупого, пожалуйста.
Делфи — это все-таки обычный паскаль с множеством библиотек или его ушедший далеко вперед диалект?

чтобы ответить на ваш вопрос- давайте сначала определимся- что вы имеете ввиду под словами — обычный паскаль?)

давайте.
это тот паскаль Borland Pascal with Objects 7.х, с синтаксисом и спеками, разбработанными компанией Borland или совместим с ее компиляторами?

Есть 2 момента- писал же выше.
1) Дельфи -это IDE с библиотеками.
2) Начиная с версии среды Delphi 7, фирма Borland стала официально в документах называть язык Object Pascal как Delphi.
То есть -да, Дельфи- это обычный борландовский паскаль, который сейчас называется одноименно со средой разработки.

Тем не менее от стандартного Паскаля он сильно ушёл вперёд.

Нет такого понятия- «стандартный Паскаль.»

Вообще, есть. Гуглите стандарт ISO 7185.
www.pascal-central.com/docs/iso7185.pdf

Вот теперь мне сиди и читай- чем это

ISO 7185
отличается от Борландовского Паскаля?:)
Надеюсь ,вы уже прочитали ISO и можете сказать, да -Борландский паскаль стандартный, или нет -это диалект?

:)
Зачем самому читать — на том же сайте про это и указано:
pascal-central.com/extpascal.html#anchor-6
:)

Окей, убедили :)
Правда изначально ветка была о другом:
Ivan Kukobko спрашивал- - Борландский object Pascal и Дельфи это одно и тоже или нет?).

Или вы стандартным считаете Паскаль Вирта 1970 года?
Тогда да- относительно него- всё есть диалекты. )

Оба.

язык отличаеться. Например наличием ооп.

Нет, блин,

Начиная с версии среды Delphi 7, фирма Borland стала официально в документах называть язык Object Pascal как Delphi.

Паскаль — высокоуровневый язык, созданный специально для преподавания СS. Но вы правы, лучше начинать с Modula 2.

Я тебе ссылку скидывал, но ты даже не удосужился ее прочитать. :)

ДелфиⓇ - это эффективная IDE для Object Pascal и библиотеки компонентов для кросс-платформенной разработки приложений с поддержкой гибких облачных сервисов и решений в контексте «интернета вещей». Компилируйте нативные приложения для серверов на Linux и Windows Server, адресуйте ваши решения самой широкой аудитории через app store для Windows 10, macOS, iOS и Android на основе одного и того же кода — с помощью первого в мире IDE со встроенной поддержкой Windows 10 Desktop Bridge. Разработчики выбирают Delphi, потому что он обеспечивает эффективность при создании корпоративных приложений (Enterprise Strong Development™), позволяя разрабатывать и внедрять системы на основе настольных ПК, серверов, мобильных устройств, облачных платформ и баз данных в 5 раз быстрее.
Да рынок маленький, но паскаль еще живой.

я считаю, что нужно учить конечно си-подобные языки, но кроме того руби- лиспоподобный язык и паскаль -алголоподобный язык. Для разнообразия понимания.)
ну и чем плохой Дельфи( которые есть просто IDE для Паскаля)- кроссплатформенный, быстрый низкоуровневый язык с высокой скоростью разработки. Причем язык сам напрямую генерирует машинный код , не нуждается в JVM и .Net

Кто хочет работать на низком уровне — Си, Ассемблер, Verilog. (у нас не востребованно)
На высоком — Go, Java. Плюсы умирают. Слишком они overengineering.

а причем тут плюсы? Мы про паскаль говорили

Я объяснил популярность делфи. До этого был турбовижион. Сейчас ситуация изменилась. Потребности к ООП, тоже сильно изменились, поскольку оконные приложения стают все больше редкостью, все в WEB переходит, где требования к ООП другие. Плюсы, и жаба или эволюционируют или уйдут.

ну жабоскрипт всех побеждает, это такое дело...

WEB реально удобнее для пользователя. Несмотря на кучу ограничений, супротив обычного GUI, типа делфи или QT. Так что...

WEB реально удобнее для пользователя.
не-а :)

WEB не для пользователя удобней. А для — предоставления ПО пользователю в использование. то есть для продающих ПО(услуги, и т.п.) удобней. ОйТи отрасль не шмагла предоставить GUI приложения с такой же простотой установки/запуска как WEB. Хотя не один год пыталась.

Я из мира embedded. Настройка чего либо через веб, сильно удобнее. Бо пофик какая ось у пользователя итд.

А ще в сайти всілякі копрорації бобра вбудовуються свої зонди.

Что интересно, и ClickOnce, и Java Web Start вполне справлялись с задачей. И даже вполне себе используются: из примеров могу сходу назвать сервисы для онлайн-совещаний Zoom и GoToMeeting, а также десктоп-клиент для Google AdWords.

Java Web Start
Так там джаву надо было на компе иметь. Сто лет назад санки провтыкали и несмогли договориться с микрсофтом по дефолтной постовке джавы, потому веб старт мертв.

Веб-старт становится не мёртв, как только требуется remote console для IPMI/iDRAC/etc. :)
А ещё буквально пару лет назад половина интернет-банкингов на нём сидела (сейчас, по примеру Привата с компанией, ушла в натуральный веб и мобилки).
Так что тёрки Sun/MS тут не очень что-то сдвинули, были те, кто мог продавить «это» несмотря на.

А ещё буквально пару лет назад половина интернет-банкингов на нём сидела (сейчас, по примеру Привата с компанией, ушла в натуральный веб и мобилки).

Та не токо приват не токо в Украине. Никто в здравом уме сейчас не начнет писать новый клиент банка в вебстарте.
До этого был турбовижион.

Турбовижн, кстати, был на c++ тоже. Тоже от Борланда.

Ну и кто им пользовался?

Ну и кто им пользовался?

Я, например. :)

Но в принципе — целевая аудитория та же, что и пользователи ТурбоВижн для Паскаля. Для разработки текстовых интерфейсов под Дос, штука была неплохая.

Под Юниксами, для тех же штук, полъзуют en.wikipedia.org/wiki/Ncurses
Но Турбовижн был попродвинутее...

Ну не надо Ncurses с турбовижионом сравнивать. Вам хоть не стыдно? И ООП в Ncurses нету. Турбовижин не просто продвинутие, это просто разные весовые категории. Но где это сейчас? Ncurses только mc и htop использует. Больше не знаю.

Турбовижин не просто продвинутие, это просто разные весовые категории.

Ncurses круче, т.к. он совместим с кучей всякого разного. Оттого, сейчас живёт везде. Любая юниксовая псевдо-графическая инсталляшка (под любыми юниксами/линуксами) — это, скорее всего, ncurses.

А ТурбоВижн был совместим лишь с досом — умер дос, умер и Турбовижн.
Но рисовал красивее... :)

Ncurses он совместим даже с «железным» (которые вообще без микропроцессоров внутри) терминалом vt-52. Такая разновидность «тонкого клиента», даже в СССР выпускался.
Но это все равно что считать что древний процессор 8051, круче чем современный кортекс, бо всякие уроды его до сих пор делают.

Ncurses только mc и htop использует. Больше не знаю.

Ну, во-первых, это Вы не знаете, а не мир :) сюда же относятся
* консольные почточиталки (elm, pine, и почти победивший их mutt)
* десятки кастомных утилит администрирования (а-ля страницы webmin, но в локальной консоли)
* экранные текстовые редакторы (как можно было такое не вспомнить?) — vim, nano, joe, ещё несколько более редких, и примкнувшая к ним ОС emacs, которая изображает из себя редактор

Иногда вместо ncurses можно увидеть его родственника slang (терминальные возможности похуже, зато встроенный C-подобный скриптовый язык).

Каюсь. тормознул. Особенно с vi. Печатаю быстрее чем думаю. :(

Плюсы, и жаба или эволюционируют или уйдут.

Напротив, у «плюсов» сейчас ренессанс. Т.к. рост производительности мобильных платформ (таблеток/мобилок) — не поспевает за ростом сложности задач, которые на эти платформы пытаются пихать.

Потому, вэб на мобилах скоро уйдёт — т.к. не выдержит конкуренции с нативными приложениями. А нативность, будет означать «плюсы» (т.к., исполнение на железе — без виртуальной машины, крадущей такты).

Я бы на Go поставил. Сложно (для чайников) многопоточность на плюсах. На Go гораздо понятнее нити. А 8 ядерные мобилы уже реальность. 16 ядерные будут в след. году. А вот 8ггц процессор, это далекая фантастика.

А 8 ядерные мобилы уже реальность. 16 ядерные будут в след. году.

Поглядим. В мобильниках куча процессоров == быстрая посадка акку.
Да ещё и проблемы с перегревом.

Как электронщик (на свою голову), могу сообщить, что электричество жрет не транзистор а clock. Тоесть тактовая частота. Ядро отключенное от тактовой частоты электричество практически не жрет. Так что можно хоть 256 процессоров подключить, в момент пиковой нагрузки. Потом отключить.

Если задача будет распараллелена на 16 ядер — они ведь все будут жрать. Пока будут считать.

А это означает, посадку акку в 4 раза быстрее, чем при распараллеливании на 4 ядра (на то же время). Или в 16 раз быстрее, чем на 1 ядро.

Ну и? Ждать минуту или 16 минут, при одинаковых энергозатратах? Плюс подсветка будет гореть не 16 а 1 минуту. Так что...

Ждать минуту или 16 минут, при одинаковых энергозатратах?

Дык, а это уже от софта зависит.
Если одна функция, с кучей «обёрток» в виде броузеров/виртуальных машин, исполняется на железе за 1500 тактов (суммарно на всех процах) — а другая такая же функция, но без «обёрток» за 100 тактов...

Я вам программу напишу.
volatile int i;
while(1)
{
i++;
};
Компилируете. Запускаете как
a.out &
пока всю систему не положите нафиг.

Я о более прикладных случаях. :)

Руки из задницы?

Таких, среди кодерков — большинство. :)

Тем более, в нынешние времена, когда в ИТ идёт всё, что движется.

И до 35.

А 8 ядерные мобилы уже реальность. 16 ядерные будут в след. году.
и каким боком ядра конечного устройства к проблемам разработки многопоточных приложений на предоставляющей (серверной) стороне?

то есть — и чем таким пользователь может загрузить свои даже 8 ядер? даже играми — важней количество спец. выч. блоков у GPU, а не ядер CPU.

вот чем таким быстро загружается средненький сервис, совсем не хайлоад — очень даже понятно. пару тысяч подключений одновременно — и уже надо думать, чтобы отрабатывал с приемлимым комфортом для пользователя. и хоть стопицот ядер пользователю на его устройстве — чем помогут, если сервис спотыкается на 10k?

Вы его смотрели? Пробовали писать? У него очень дешевое и очень качественное почкование нитий.

Почему математика тормозить будет? Всякие MMX на нем тоже можно использовать.

Да. Есть. Все что писано на Си, можно вызывать из Го. Какие-то родные мат. библиотеки есть и на Го. Главное — запустить мильен нитий на Си, и система грохнется. А Го, хоть бы хны.

Чудес не буває — в ОС є processes/threads/fibers etc, все так чи інакше працює через них. Значить, на С/С++ подібне також можна реалізувати.

В том-то и фишка что у Го есть еще и свой шедулер, который сам раскидывает нити по реальным процессорам. Сами скачайте и посмотрите. Я сделал простой тест: основной процесс рожает в цикле мильен нитий, каждая из которых инкрементирует ОДНУ переменную внутри ОДНОГО мютекса.

Ok, давайте так: цей шедулер працює поверх ОС. Сама ОС написана на С/C++. Відповідно, роботу цього "

мильена нитий
" фактично підтримує код на С/С++.

Продолжаю аналогию. Дороги проложены поверх бездорожья....

не зрозуміло, дяля чого вам потрібні аналогії з іншої області (в якій ні, ви ні я некомпетентні), щоб пояснити щось із області, де ви компетентні ??? як на мене, аналогія притягнута за вуха.

Ок. Простой тест. На моем ДОХЛОМ компе.
artem@artem-desktop:~/go$ time go run test.go
m=: 100000000

real 0m38.635s
user 2m7.804s
sys 0m4.992s
artem@artem-desktop:~/go$ free -h
total used free shared buff/cache available
Mem: 7,8G 526M 7,0G 9,1M 275M 7,0G
Swap: 20G 2,3G 18G
artem@artem-desktop:~/go$
Сама программа.
---------------------------------------------------------------------------
package main
import (
„fmt”
„sync”
)

func main() {
var m int
var m_mutex = &sync.Mutex{}
var wg sync.WaitGroup

wg.Add(100000000)
for i:=0;i<100000000;i++{
go func (){
defer wg.Done()
m_mutex.Lock()
m++
m_mutex.Unlock()
}()
}
wg.Wait()
fmt.Println("m=:", m)
}
---------------------------------------------------------------------------
Сколько тоже на техже pthreads занимать будет?
----------------------------------------------------------------------------
artem@artem-desktop:~/go$ cat /proc/cpuinfo | grep model
model : 37
model name : Intel® Core™ i5 CPU 670 @ 3.47GHz
model : 37
model name : Intel® Core™ i5 CPU 670 @ 3.47GHz
model : 37
model name : Intel® Core™ i5 CPU 670 @ 3.47GHz
model : 37
model name : Intel® Core™ i5 CPU 670 @ 3.47GHz

Сколько тоже на техже pthreads занимать будет?
Оскільки фактично N * goroutines транслюються в 1 pthread , не зрозуміло, як це можна порівнювати.

А вы попробуйте. Сильно удивитесь.

Ще раз: не можна так порівнювати.
Треба брати якусь бібліотеку С++ з реалізацією багатопоточності, подібною до шедулера в Go, скажімо Boost.Fiber, писати тести і порівнювати.
Не маю ні часу, ні натхнення, ні достатніх знань в С++.

Блін. У мене 3 гіга DDR 2 і вбудована відокарта.

Да. Я так понял что нити в Го, это что-то вроде сборщика мусора. Без проблем его к плюсам тоже можно прикрутить, но когда оно «само», это сильно проще.

Главное — запустить мильен нитий на Си, и система грохнется. А Го, хоть бы хны
Под капотом в go как раз таки обычные себе треды. Горутины это не настоящие треды, если что, а джобы которые планировщик умеет шедулить поверх пула тредов.

Горутины это как Task library в C#- только встроены они на уровне языка.

В любом случае экономия ресурсов.

А нативность, будет означать «плюсы»

возможно, вы хотели сказать llvm?

Хоспаді, вебшщики маскують свої сайти під програми копіюючи віджети з тих же Windows програм. В JavaScript з’явилося ключове слово class... яке інше ООП?

В JavaScript з’явилося ключове слово class... яке інше ООП?

Скільки «class» ні малюй, воно не перестане бути прототипним у гіршому сенсі.

Та й пофіг, це ж скриптова мова! Скільки не роби з неї «дорослу» мову (у розумінні іншомовних розробників) менше скриптовою вона не стане. Хто це зрозумів, перестав страждати.

Але коли від неї хочуть продуктивності будь-якою ціною, бо альтернативи (браузери) немає, сховати голову в пісок не вийде.

Продуктивності? Від JS? Ок, ASM.JS! :D

Asm.JS не поможет там, где большинство тормозов от того, что путь вызова в стиле a.b.c.d (неважно, напрямую или через промежуточные методы), требуют лукапов по внутренним хэш-таблицам полей — а таких ситуаций 149%, и основные тормоза работы браузеров — от них.

Посмотрите на оптимизации движка V8 — огромная их часть посвящена именно кэшированию таких доступов.

По сравнению с этим Asm.JS, конечно, полезен, но банален до чёрта.

все в WEB переходит, где требования к ООП другие.

Можно по подробнее, в чем отличия требований к ооп в вебе ?

Но микросервисы на Го всеравно лучше.

Где это Си мало? Единственное что я слышал, так это какой-то видео кодек на плюсах писан. Остальное на Си.
А порт с матлаба в плюсы не тянет за собой матлабовские либы?

Ничего не понял.

Kaldi — Си + всякие MMX на asm ресурсоемкие числодробилки. Остальное на Го можно.

Понимаешь, именно в этом и дело.
Многие вещи писать на С достаточно геморрно, хочется немножко инкапсуляции и легких динамических объектов.
Но С++ оверинжениред. Ты можешь написать просто и прозрачно, но всегда существует риск, что придет адепт максимального обобщения и изговняет все шаблонами, не задумываясь о возможных сайд-эффектах.
И вот тут как раз появляется ниша для Go — сохранившего унаследованную от С простоту и надежность гаечного ключа, но с современными преподвыперевертами типа интерфейсов, многопоточности и встроенного new.
А то что его сейчас активно используют на бэкенде — это перекос рынка. Абсолютно согласен с Артемом насчет применимости Go в эмбеддеде и околосистемном программировании. Впрочем Docker как бы говорит сам за себя.
С DSP знаком очень поверхностно, но исходя из того что я знаю, абсолютно не вижу препятствий для успешного применения Go в этой отрасли.

Кури, как подключать либы из С и будет тебе щасте.

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

та да, если даже джава не смогла победить джаваскрипт в браузерах, то о чем говорить)

Мене навпаки «віконця» надихають більше ніж HTML документ.

ага, потому видно и я в 2009-10х писал либу оконного менеджера на жабоскрепке, чтобы web стал ламповее, как же без окошек, был такой себе отходняк после святой уверенности что за Delphi будущее :))

учить с Паскаля- кажутся Си-подобные языки страшным синтаксисом.
писал профессионально на обоих.
нет между ними разницы :)

сейчас вот бизнес логику переношу в SP sqlевские. вот тут разница есть. хоть бы MUMPS какой был... а лучше конечно — вариант ECMAScript’а.
но нет, 21ый век, про Марс разговоры, но «sql» БД по прежнему предлагают убожество похлеще «жывого бейсика» для прикладной логики.

а вы о разнице Паскаля и Сиподобных. право, какая мелочь то, в разнице между ними...

может вам и bash не нравится?)

плотно не пользовался, совсем не девопс.
а что с ним не так? вроде годная штука.

Если пытаться логически замкнуть шелл до полного набора фич, эта задача имеет несколько типовых решений: в частности, Tcl и Perl (а сбоку примажется Rexx). Bash пытается решать её «в себе» без нарушения совместимости с sh, откуда и растёт весь стрём.

«Как баш» он вполне умеет — просто вместо прямого написания команды вызывается метод у subprocess, или даже os.system(). Добавка к объёму кода минимальна.

но «sql» БД по прежнему предлагают убожество похлеще «жывого бейсика» для прикладной логики.

Речь про SQL или про язык процедур?

сейчас вот бизнес логику переношу в SP sqlевские.
IMHO, це треба робити в крайньому випадку. Коли цей зоопарк сильно розростається, там потім чорт ногу зломить.
Это дело вкуса на самом деле.

Часть проблем — дело вкуса, а часть таки серьёзная. Повторю свой старый комментарий, чуть осовременив.

1. Язык с обязательными операторными скобками (как Вирт позже сделал в линии Модула — Оберон) — легче понимается, а Паскаль — очень тяжело. И портит картину то, что постоянно эти скобки пропускаются в примерах и учителями, а понять, как их расставлять — например, как после then и после else раздельно ставить, или не ставить — это для совсем юных очень сложно. (Испытано на нескольких подопечных, включая собственных детей и племянниц.) А ещё надо их набирать! Для тех, кто только-только начал осваивать клавиатуру — даже begin это заметная затрата времени. {} полегче в этом смысле, в разы.

В Modula и позже стиль скобок — выглядит так (его также заимствовали Ruby и Lua)

if условие then
        операторы (один или много - неважно)
else 
        ещё операторы
end

или просто

if условие then
        операторы
end

Вместе с проблемой отступов — которые вечно теряются — это ещё больше поддерживает идею, что Питон с его отступами тут лучше всего продуман — именно как для обучения. Но и вариант Modula тоже неплох — лучше, чем Паскаль. И вариант Go/Swift/Perl (ещё кого?), когда {} просто обязательны в телах условных операторов или циклов — тоже лучше паскалевского.

2. Ещё сбивает с толку то, что repeat — until это само по себе скобки, а все прочие — нет.

3. Постоянный бардак с ’;’ как разделитель — местами он нужен, местами пофиг, местами (между end и else) — нельзя. «Дети, это невозможно понять, это надо запомнить! Слово „сол“ пишется с мягким знаком, а слово „тарэлька“ — бэз!»

4. Очень неудобно то, что в read[ln], write[ln] необязательный первый параметр — объект файла. Обязательный, или другое название функции, как в C stdio (fprintf вместо printf) — был бы тут однозначно лучше. Потому что сначала учатся тому, что read(a,b) это прочитать a и b, а потом — переучиваются заново — что read(f,a,b) — это не прочитать f, a и b, а из f прочитать a и b.

5. Вечная идиотская проблема с тем, что and, or приоритетнее сравнений, поэтому написать a=b and c=d нельзя, нужно (a=b) and (c=d).

Это только первая порция того, на чём у меня систематически спотыкались ученики и чему приходилось обучать несмотря на все «тут так, увы, принято».

Никлаус Вирт орал на весь мир «Не используйте Паскаль! Есть Modula, есть Oberon, в них все дурости Паскаля исправлены!», но так как в IT почти всегда идёт в массы не лучшее, а первое из минимально приемлемых, то застрял Паскаль. Разумеется, в виде честно копитыбренного Delphi лет на 15 (только в прошлом году у нас задумались, не попробовать ли другие IDE, которых уже как собак нерезаных — но всё равно для Паскаля!) :( :((( Теперь переходят на связку FPC + Lazarus.

А ещё проблема стандартной библиотеки контейнеров — в Паскале её нет вообще, а сейчас язык без неё всерьёз воспринимать нельзя, даже для школы. Поэтому и пишут на чём-то вроде Delphi с кучей разных таких библиотек, а не на «Паскале». Да-да, Delphi называть Паскалем уже давно не просто некорректно, а вообще диверсия.

легко не всегда понятно.
Для ребенка ,имхо будет понятнее, begin, что переводится начало ,чем просто непонятная скобка { ..
строгие отступы Питона- это тоже не всем подходит, больше для визуалов.
Руби к сожалению — не поддерживается корпорациями..
5-я проблема, мне кажется высосанной , скобки делают выражения с несколькими знаками равенства более наглядными для начинающих ,что с чем сравнивается.
На самом сайте эмбракадеро , нынешних владельцев Паскаля -написано:

ДелфиⓇ - это эффективная IDE для Object Pascal и библиотеки компонентов для кросс-платформенной разработки приложений с поддержкой гибких облачных сервисов и решений в контексте «интернета вещей»
То есть Дельфи- это просто идешка для Паскаля , не язык вы и сами об этом пишете выше.
С остальным в принципе согласен..
Для ребенка ,имхо будет понятнее, begin, что переводится начало ,чем просто непонятная скобка { ..

Я убедился в обратном. begin ничуть не понятнее, особенно за счёт того, что он не говорит ничего начинать (в отличие, например, от begin transaction в SQL диалектах), он просто группирует. Это ещё одна вещь, что сбивает с толку. Скобки для группировок понятнее таки всем.

5-я проблема, мне кажется высосанной , скобки делают выражения с несколькими знаками равенства более наглядными для начинающих

Увы, здесь была колоссальная доля граблей — может, даже больше, чем у begin для блока.

То есть Дельфи- это просто идешка для Паскаля , не язык вы и сами об этом пишете выше.

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

Надо было сразу определиться о чем мы говорим о среде или о языке :)

Я такого не писал.
Разумеется, в виде честно копитыбренного Delphi лет на 15 (только в прошлом году у нас задумались, не попробовать ли другие IDE,
то есть вы сами написали ,что Дельфи- это IDE.
По поводу расширений к языку, гм...
Так язык не стоит на месте ,как бы:
«Однако в настоящее время термин Object Pascal чаще всего употребляется в значении языка среды программирования Delphi. Начиная с Delphi 7[3], в официальных документах Borland стала использовать название Delphi для обозначения языка Object Pascal.»
То есть Дельфи- это язык Object Pascal.
Есть среда разработки Дельфи ,а есть Язык Дельфи, который суть есть Борланд (Эмбракадеро) Object Pascal
то есть вы сами написали ,что Дельфи- это IDE

Нет. Это интерпретация цехом учителей информатики, а не моя. Специфика языка им очень второстепенна, а вот беспроблемность работы на новых Windows и даже — о ужас, иногда и на Linux — важнее.

Есть среда разработки Дельфи ,а есть Язык Дельфи, который суть есть Борланд (Эмбракадеро) Object Pascal

Пусть так, я не считаю эти тонкости терминологии сколь-нибудь принципиальными для себя.

По поводу детей- это было мое имхо. Я ребенком начинал изучать программирование в том числе по книжечке -" программирование на Бейсике ,Фортране и Паскале в примерах". Там все примеры в 3-х вариантах давались. И мне все было одинаково удобно. Ребенок это чистый лист- как приучишь, так и удобно. Конечно ,если после изучения джавы или питона- давать паскаль -могут быть вопросы.

По поводу детей- это было мое имхо. Я ребенком начинал изучать программирование в том числе по книжечке -" программирование на Бейсике ,Фортране и Паскале в примерах«. Там все примеры в 3-х вариантах давались. И мне все было одинаково удобно.

Ну, я лично со старого Фортрана начинал, так что всё структурное построение вначале было в диковинку :) а впечатления уже от своих детей и их ровесников.

Ребенок это чистый лист- как приучишь, так и удобно.

Совсем как чистый лист — это уже нереально, влияет многое, начиная с математики. Один мой одноклассник в упор не мог понять, что такое «X=X+1», а не умел тогда это объяснять. Видимо, он так и остался непонимающим :)

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

Они и идут. И в основном от ограниченности языка и его средств.

Значит пусть Вижуалбейсик учат/ NET)

Бесперспективно, в отличие от.

потом с бейсика можно перейти на C# -самый развитый язык, имхо ,есть и ООП и типизация и асинхроннсть и функциональщина многопоточность, и указатели, если надо- ребенок игрушку может запрограммировать себе хоть десктоп, хоть веб..ход мобильное.. про перспективу думать рано детям, за 5 лет все еще поменяется..

Строго-говоря, в c# указателей нет — есть лишь референсы (ссылки?).

А указатели это в C++/CLI, который «ансэйф».

в С# есть ансейф.
в меню Build установить флажок Allow unsafe code (Разрешить небезопасный код) и потом в коде используется ключевое слово unsafe.
например:
public void Method()
{
unsafe
{

Это да. Но это (внутри блока) — уже будет, практически, C (включая возможности вызова функций виндового АПИ).

Ну это будет C# с функциями С) , у них же разные компиляторы с С, насколько я знаю..
Про указатели писал в контексте отличия от Джавы. Ребенок может поюзать небезопасный код.
Вообще я не о том писал ,а том что C#хороший язык для изучения в школе — имхо считаю его самым развитым языком общего назначения.

потом с бейсика можно перейти на C# -самый развитый язык

Язык-то развит и даже на 99% вменяем, но идущая к нему реализация дотнета — извините, за такое только вешать. Я про то, как она идёт за пределами Windows, несмотря на всю обещанную «кроссплатформенность».
Поэтому я C# не рассматриваю, хоть и временами с тоской (был бы ещё один приличный вариант).

ребенок игрушку может запрограммировать себе хоть десктоп, хоть веб..ход мобильное..

На это и Java годится, и даже JS, хоть и со скрипом.

про перспективу думать рано детям, за 5 лет все еще поменяется..

Не всё, инерция таки колоссальная.

нафига ребенку знать всю реализацию дотнета? Можно на формочках программировать простенькие десктопные игрушки и радоваться жизни.
Хотя опять же смотря какой возраст в имеете ввиду.
Джава сгодится, она синтаксически проще +андроид. С# более развитый язык, есть свои собственные возможности схожие с С, поэтому не нужно вызывать низкоуровневые модули на других языках, SQL подобные запросы и т.д. Смотря какие у вас цели.
Если целей нет, тогда может даже Питон лучше.

Десктопные игрушки неинтересны. На андроиде она уже рисует :) Питон давно пройден, с игрушками тоже (поверх Tkinter).
А чтобы на C# переходить, нужны уже серьёзные цели, а тут и начинаются проблемы реализации.

Совсем как чистый лист — это уже нереально, влияет многое, начиная с математики. Один мой одноклассник в упор не мог понять, что такое «X=X+1», а не умел тогда это объяснять. Видимо, он так и остался непонимающим :)

мне че-то сразу вспомнился Джо Армстронг, который тоже про «x = x + 1» в своей книге про Erlang писал)

Да рынок маленький, но паскаль еще живой.

Вспоминаю середину 90-х... Вся наша институтская группа ударилась в Дельфи (немудрено, т.к. курс программирования читался на Паскале).

Но были и «белые вороны», забившие на Дельфи/Паскаль болт — и уже стартовавшие на «плюсах». Я и ещё один одногруппник, который теперь осел в нехилой контракторской конторе — после работы в амерских Электроник Артс и Майкрософт. :)

В делфи ударились потому что можно было очень быстро накидать «приложение» с кнопками итд, потом загнать функционал как «поддержку», беря бабло за реакцию на любое действие пользователя.

Это я к тому, что увели паскалисты уже не одного подающего надежды кадра, на кривую дорожку в никуда. А уж сейчас-то, соскакиватъ на Паскаль/Дельфи, когда они еле-еле живые... Пристрелить, чтобы не мучались. :)

В делфи ударились потому что можно было очень быстро накидать «приложение» с кнопками итд
ну, этот тренд всегда.

смотрю на рост числа вакансий Laravel. чё, понабросали по бытеньку приложений на «фреймворке для ремесленников(artisan)» а однако оказывается приложения нередко живут больше года, и когда они переживают этот срок — их эволюционно надо развивать.

С дельфи приключилось примерно тоже самое. Оказалось что прикрутить GUI к CRUD — это только начало. И если дальше — проблемы — то эта быстрая прикрутка преимуществ не дает.

беря бабло за реакцию на любое действие пользователя.
Agile же :)))
А якщо серйозно, особливих альтернатив в той час не було. У MS був Visual Basic, у VC++ був якийсь допотопний редактор ресурсів...
А, був ще IBM VisualAge, там свої заморочки...
Шкода, що Борланд «просрав всі полімери», а програмування на Дельфі скотилося до «де мені знайти компонент».

Пока у MS не появился MFC, писать под винду было адский треш! ON_PAINT WM_PAINT...... A-a-a-a-a-a-a-a! Когда-то писал под Palm-Pilot, там тот же принцип был на порядок логичнее сделан. Потом посмотрел, историю, и кто у кого украл, и все стало понятно.

Борланд мне не жалко. Их компилятор был полное гавно. Watcom давал гораздо лучший результат. Плюс 32 бит под досом было круто.

То-то школы переползают на FPC + Lazarus.

Паскаль — высокоуровневый язык, созданный специально для преподавания СS.

При этом — типичный «первый блин комом» и непригодный для реального использования (все промышленные реализации его заметно расширяют).

Но вы правы, лучше начинать с Modula 2.

1. А почему не Modula 3? Что во 2-й настолько лучше? На 3-й, BTW, были реальные заметные проекты (как cvsup).

2. Ещё 10 лет назад было относительно актуально (это даже не считая идей типа «первый язык должен быть функциональным»). Сейчас выбор скорее лежит между Java и Python. Хотя некоторые вон вообще стартуют с Javascript (не буду повторять ссылку ещё раз).
А разгадка проста — безблагодатность стандартная библиотека.

Не пробовал. Но после Ruby все эти варианты типа названия метода foo? или вызова функции без () после неё — крайне сбивают с толку в других языках, где подобное не позволяется. А так как одним Ruby сыт не будеш, мне это заранее не нравится — заводить привычки, от которых не отучишься.

Я скорее имел ввиду ненужность открывать/закрывать скобки, следить за отступами и заканчивать (почти) каждую строку точкой с запятой.

Так это разные «домены» требований. Или точки с запятой, или отступы :)

А практика показывает, что «ненужность» отступов очень условна — если их всё равно надо рисовать, то почему бы и не сделать их блокообразующими?

И скобки в новых языках (Swift, Go), как и в части старых (Perl), обязательны, так что тоже можно не следить. IMO это правильно.

А так да, опытные рубиисты еще палят начинающих по наличию «return» в конце метода:)

Со значением или пустой return?

так же как и в скале, как и продолжают некоторое время везде лепить ; но потом попускает

«Трупики» популярны как никогда :)

Тенденцію зміни популярності Java за рік бачили по Вашому посиланню? Так, Java досі утримує перше місце в якості найпопулярнішої мови програмування, проте: change за рік: −5.28%. Динаміка негативна.
p.s. Взагалі нічого не маю против Java. І маю сумніви щодо того, що вона «помре», тому що дуже багато софту у Світі написано та підтримується саме на Javi. І переписати все це на іншу мову (яку? і навіщо?) не питання одного десятка років та не одна сотня мільярдів витрачених «зелених» для власників цього софту.
Отже, «Java-помирає», в назві цієї теми — перебільшення. :)

Есть видео курса CS 106A за 2008 год вроде как www.youtube.com/…​t?list=PL84A56BC7F4A1F852
Там препод просто уматовый :)))

Я с этого курса когда-то давно начала изучение джавы) Препод замечательный вообще ^_^

а я смотрел когда уже немного знал. Но стиль преподавания и харизма просто класс. Его ставлю в пример когда что то расказываю студентам

А робот! Какой там был робот!

Аж пересмотреть захотелось. Когда была последняя лекция — аж как будто ком в горле встал

хорошие были мотоциклы...

А чай был не очень, так что я даже рад :)

Ява триста пєдесята
Блистит, як в собаки яйця
Стою я під твоєю хатов
Виходь, поїдемо на танці

то єсть на Гадюкіних мені оцево в атвєточку?
www.karaoke.ru/…​t/nad-derevnej-klyuevkoj

Intro to CS таки умирает.

Literally no they’re not. It’s an option, but the main class is still Java. CS106 (the intro CS class) is basically required for all undergrads. Offering students the possibility of exploring webdev (which is quite different than the core CS) is a valuable opportunity.
In case you’re wondering, in the first three quarters (one year), the languages in the CS core are: CS106A (Java), CS106B (C++), and CS107 ©. By the end of that basic core you’ve moved from upper level learning what a for-loop is and what good code is, to fairly lower level, including memory management and how the hell floats work. It’s not that crazy.
www.reddit.com/…​using_java_to_javascript

Ну вот, тема с таким холиварным названием, уже был готов читать тысячи гневных комментов, а вы взяли и одной ссылкой все похоронили :(

Если бы ТС потерпел до пятницы, я бы придержал ссылку..

Підписатись на коментарі