LINUX.ORG.RU

ЛОР, помоги выбрать ЯП для обучения

 , , , ,


1

3

Часто слышу просьбу научить программированию. Хотя пока я этим не занимаюсь, мне стало интересно, какой ЯП выбрать для введения в программирование.

Вот к каким мыслям я пришёл:

Язык должен наиболее чисто демонстрировать самые основы написания кода.

Не Си и не современные коммерческие языки (Java, C#, Go). Си, хотя примитивный в основе, усложнён из-за окружения, в котором используется. Современные коммерческие языки были созданы для решения проблем индустрии. Проблема общая: я хочу преподавать материал по мере нарастания сложности. Если в языке неизбежно приходится использовать классы или printf, то это затруднит объяснение (не хотелось бы слишком часто говорить «потом узнаешь для чего это нужно»), напугает студента (ему придётся писать код, используя возможности, которые он плохо понимает), создаст неправильное восприятие основ (как будто printf — это какая-то важная часть компьютера или ОС).

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

Языки, между которыми я выбираю: Pascal и Python.

Pascal устарел и денег не принесёт (обидно), но это и не является основной целью. Целью является программирование, а не современное окружение.

В частности, я не собираюсь задрачивать студента на Delphi или любой «продвинутый» диалект языка. Это противоречит цели. Я рассчитываю на то, что после должной тренировки “bare bones” нужно перейти на современный язык и это будет легко.

Важно упомянуть, что спека языка Oberon (Виртовский язык, тот же Паскаль, только упрощённый и доработанный) составляет 17 страниц.

Питон мне сложнее оценить, потому что я избегал работы с ним.

Если ограничиться императивным подмножеством, без ассоциативных массивов, классов и мета-классов, list comprehensions, HOF, исключений, то выглядит как альтернатива Паскалю. Хотя меня беспокоит динамическая типизация. Типы — очень важная вещь, хотелось бы чтобы язык помог это донести, а не быть типа «ну да, это важно, но ты забей».

Это все мои мысли.

Что касается практики, то я имел несчастье наблюдать как человек впервые знакомился с программированием, изучая Java на javarush. На это было больно смотреть.

Edit: дальнейшие пояснения по теме:

  • Подробнее про то, почему я считаю, что изучение основ и Паскаль хорошо сочетаются: 1
  • Почему не Си и не ассемблер: 1 2
  • Почему Паскаль: 1 2
  • Почему не Питон: 1
  • Целевая аудитория: 1
  • Почему такая размытая аудитория: 1 2
  • Про важность иерархии: 1


Последнее исправление: kaldeon (всего исправлений: 10)
Ответ на: комментарий от rebforce

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

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

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

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

Что рисуется и двигается при обучении математике? Разве что формулы на доске рисуются,так это аналог символов в консоли. И ничего,школьники математику вполне осваивают.

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

Бгг. уже и мухлевать начал :)

Да нет, я просто запустил на своем x86_64 Intel на Арче. Но можешь пытаться делать вид что тебя обманывают, если тебе так легче.

Вот тот же код, но уже на aarch64:

&x = 0xffffd86c302c
&y = 0xffffd86c3028

Оп, уже по-другому и похоже на твое. Все это подтверждает изначальный тезис: как именно переменные распихаются по стеку зависит от ABI, флагов и является несущественной деталью реализации.

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

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

Досовский турбопаскаль учить и в самом деле надо было прекратить еще 25 лет назад. Но чем плох для учебы Lazarus + FreePascal? Позволяет быстро написать работающую программу с меню и кнопочками, которая что-то полезное даже делает. Причем кросплатформенное: для Win, Mac и Linux и даже для Android можно писать https://habr.com/ru/articles/835244/

То, что со знанием только FP школьник работу не найдет, а кое как научившись писать что-то на питоне или жабоскрипте, может попытаться приткнуться куда-то? Есть такое и что. Школа должна плохих кодеров на питоне выпускать что ли?

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

Но никто не мешает, немного освоив FreePascal, взяться хоть за Питон, хоть за Javascript, хоть за Си или тот же Rust.

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

Паскаль давно надо было закопать хотя бы за безальтернативный := (в том же го это хоть только в одном частном случае используется, можно и без такого обойтись), за обязательные точки с запятой, за begin/end и за необходимость объявлять переменные далеко от места их фактического использования.

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

Ошибки переполнения как раз случаются когда программист определяет тип. Смотрит и думает: значение больше 255 не будет, а потом приходит 300.

После чего вызывается исключение которое должны образом обрабатывается (в Аде). А не просто segfault как в классическом Си. Или хуже того - просто обрезка лишних разрядов.

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

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

А про типизацию спасло бы Mars Climate Orbiter

Спасибо,отличный пример! И таких случаев немало,хотя и менее известных.

если бы для футов и метров использовались разные типы данных.

Но так как программисты к такому не приучены то и не используют. В Си вон тоже можно определить через typedef два разных типа,производных от int. Но при сложении одного с другим компиляторы обычно не выдают предупреждение. Ну и самое моё любимое,что в Си,что в ТурбоПаскале - это когда складываешь два int,присваивая результат переменной типа long потому что заранее предполагаешь что результат может не влезть в int. Компилятор МОЛЧА обрезает результат сложения до int и только потом присваивает. Это что - логичное поведение? Хоть бы предупреждение выдало. Надо сказать что Ада на этом примере не спотыкается,а делает так как и ожидалось, без обрезки.

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

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

уже 2 занятие – это написание программы

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

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

Чем (@ obj field subfield (meth arg arg2)) хуже, чем obj.field.subfield.meth(arg, arg2)?

А чем лучше? И почему весь такой из себя хороший Лисп так редко встречается в коммерческом программировании? За три десятка лет работы с компами мне даже Паскаль и то чаще попадался.

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

Насколько обязательно использовать везде ООП?!

Правильный вопрос!

Причем писать в объектном стиле можно и не используя специфический объектный синтаксис.

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

Что рисуется и двигается при обучении математике?

Возьмите двух братьев-близнецов лет восьми. Одному объясните, что круг — это геометрическое место точек, равноудалённых от заданной. А другому — нарисуйтей с помощью циркуля. Затем (тут я ещё не придумал как), нужно проверить кто из них быстрее постиг что такое окружность.

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

и отступы еще.

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

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

круг — это геометрическое место точек, равноудалённых от заданной

удаленных на расстоянее не более радиуса

ya-betmen ★★★★★
()
Ответ на: комментарий от mister_VA

Тут хватает FORTRAN IV.

А я еще добавлю про программирование для микроконтроллеров,где тоже ООП обычно не нужно(хотя технически и возможно).

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

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

Для обучения := даже как раз неплох. Не возникает ассоциаций с неправильным уравнением x = x+1 и нет путаницы с проверкой на равенство. В более других языках людям конечно надоедает печатать два знака вместо одного, как и begin/end набирать. Хотя в общем-то надоедливость тут преувеличена.

за обязательные точки с запятой,

А это что за претензия? точки с запятой очень много где обязательны. C, C++, Java, C#, Rust кучи их.

и за необходимость объявлять переменные далеко от места их фактического использования.

Есть такое, я не пытаюсь FP идеально удобным языком программирования представить. Хотя встречал споры по этому поводу, некоторые считают, что объявление переменных в произвольном месте портит код и чревато ошибками.

Так или иначе, но методологически в первом языке программирования это, наоборот, наверное правильно, что есть секция для объявления переменных и для кода.

Хотя вот есть PascalABC, довольно часто используемый в школах, там переменные можно объявлять где угодно. С их инициализацией ABC даже чем-то питон напоминает https://pascalabc.net/downloads/pabcnethelp/index.htm?page=LangGuide/_ProgrSt...

praseodim ★★★★★
()
Последнее исправление: praseodim (всего исправлений: 1)
Ответ на: комментарий от rebforce

Хрен с ними, с наработками человечества

Не все наработки одинаково полезны.

будем на ассемблерах всё велосипедить?

Между двумя крайностями - ассемблером и нагромождением абстракций на абстракции - лучше выбрать нечто среднее.

Тем более что чем выше пирамида абстракций тем требуется более высокая квалификация программиста чтобы понимать как это всё работает.

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

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

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

watchcat382
()
Ответ на: комментарий от ya-betmen

И что, много кому это по жизни помогло? Система образования у нас как раз вообще от реальности максимально оторвана.

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

А это что за претензия? точки с запятой очень много где обязательны. C, C++, Java, C#, Rust кучи их.

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

Для обучения := даже как раз неплох. Не возникает ассоциаций с неправильным уравнением x = x+1 и нет путаницы с проверкой на равенство.

И вот здесь, внезапно, Tcl со своим set весьма неплохо справляется. Хотя в нём как таковых традиционных операторов нет вообще. Только в рамках expr, опять же. И команд, вызывающих expr внутри.

А если для присваивания нужно городить именно оператор, то даже ← куда логичнее, чем :=.

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

Тем более что чем выше пирамида абстракций тем требуется более высокая квалификация программиста чтобы понимать как это всё работает.

Но зачем?

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

при обучении должен быть видимый результат.

Что рисуется и двигается при обучении математике? … школьники математику вполне осваивают.

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

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

А понять как она работает - позволяет?

Никто не запрещает писать консольные программы. Так же как и с Python - вызывать GUI. Я это к претензиям, что на паскале оторванный от жизни код получается. Но с этим у современных компьютеров/ОС вообще все сильно плохо.

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

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

Мощно завернул. Языки с ; это не только вышеперечисленное, это вообще минимум половина или даже более всех языков.

А если для присваивания нужно городить именно оператор, то даже ← куда логичнее, чем :=.

← нет на клавиатурах (раскладках). Так сложилось. Может на каких-то и есть, но это настолько не мейнстрим, что даже обсуждать глупо. Можно конечно повесить на какую-то клавишу, но это тоже то еще извращение ради какого-то языка кастомную раскладку лепить или писать текст программы на нем только в специальных редакторах. Когда-то давно это никого не смущало, например, для языка APL слышал даже накладки на клавиатуру продавались со специальными символами, но сейчас всерьез что ли?

praseodim ★★★★★
()
Последнее исправление: praseodim (всего исправлений: 3)
Ответ на: комментарий от rebforce

Паскаль давно надо было закопать хотя бы за безальтернативный :=

И чем это плохо? Как раз для начинающих избавляет от путаницы между операциями сравнения и присваивания. Типичная же сишная ошибка - написать if(a=b) вместо if(a==b)

за обязательные точки с запятой

Так в Си они тоже есть. Тоже закапывать?

за begin/end

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

необходимость объявлять переменные далеко от места их фактического использования.

Объявление переменной в начале процедуры/функции это много лучше чем те языки где опечатка в имени переменной приводит к созданию новой переменной с таким именем.

А вообще как мне кажется популярность Паскаля как учебного языка как минимум у нас в стране связана не столько с самим языком сколько с удивительно удобной и наглядной IDE борландовских продуктов. Сборка и запуск программы одной кнопкой(причем для небольших учебных программ очень быстро), пошаговая отладка,возможность просмотра значений переменных,наглядные сообщения об ошибках,встроенная документация. И всё это на удобных хоткеях, за мышь хвататься вообще не нужно было. В линуксе сейчас вообще есть такие удобства хоть для какого-то языка? Судя по тому что в линуксе чаще всего средством отладки служит вставленная в код функция вывода отладочных сообщений - похоже что плохо с этим. Мне-то привычно,я еще на ЕС ЭВМ первые программки писал и печать отладочных сообщений там была единственным способом отладки.

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

В линуксе сейчас вообще есть такие удобства хоть для какого-то языка?

В принципе для Python, если использовать Jupyter-Notebook + браузер или встроенные возможности редактора VSC / VSCodium близко к этому. Код в отдельных ячейках, пишешь код в ячейке, Ctrl+Enter - он тут же исполнился (только в этой ячейке) и можно посмотреть результат. Тут же поправить код в этой или другой ячейке. Можно выделить кусок кода и вызвать справку для него (не всегда настроено из коробки).

praseodim ★★★★★
()
Последнее исправление: praseodim (всего исправлений: 1)
Ответ на: комментарий от ya-betmen

Угадай почему в младших классах не разрешают использовать калькулятор.

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

Интересно,что в тех же младших классах при обучении счету активно использовались палочки. Судя по тому что они продаются и сейчас - похоже что и используются по сей день(запрос в гугл «счетные палочки»). Также продаются счеты (abacus). Непонятна логика - электронный калькулятор нельзя,а его механический аналог можно.

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

Мощно завернул. Языки с ; это не только вышеперечисленное, это вообще минимум половина или даже более всех языков.

Я исключительно о тех, где ; обязательна. И да, они все не нужны, кроме C.

← нет на клавиатурах (раскладках). Так сложилось. Может на каких-то и есть, но это настолько не мейнстрим, что даже обсуждать глупо.

Во-первых, есть языки с <-, это уже хоть что-то. Во-вторых, я же эту стрелку сейчас как-то набрал (а не скопипастил откуда-то) — клавиша Compose рулит. В-третьих, вот это то, что я и пытаюсь донести здесь: если ЯП вносит неочевидность в процесс обучения программированию, то зачем вообще такой ЯП нужен?

ЯП не должен мешать, грузить низкоуровневыми деталями, неочевидностями и неоднозначностями. При всей своей всратости вшитый в домашние ПК 1980-х годов бейсик был в этом плане идеальным для обучения. Он, в общем-то, и не предназначался для тех, кто далее хотел стать программистами. Но он позволял простым смертным с нуля решать задачи. Таким ЯП, кстати, мог бы стать и TRAC, если бы его автор до самой смерти не занимался копиразмом и патентным троллингом (после того, как всю архитектуру языка вплоть до алгоритма парсера в доках описал, ага). Сейчас на место бейсика и трака пришли питон и тикль. Чем это плохо?

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

Любопытно. Для линукса никто не сделал готовую? Вроде даже в новостях было. Но как-то они плохо приживаются, во всяком случае, мне кажется, все-таки проще иметь := в языке, работающее везде, чем специально раскладку настраивать. Еще можно конечно синонимом сделать ← и :=

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

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

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

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

Я использую https://github.com/Sherevv/xkb-birman/blob/main/README.ru.md

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

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

Хорошо, в какой стране детям младших классов можно использовать калькуляторы на математике?

ya-betmen ★★★★★
()
Ответ на: комментарий от ugoday

Возьмите двух братьев-близнецов лет восьми.

А что, программированию уже всерьез обучают с восьми лет? Вроде как информатика в школах только в старших классах появляется.

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

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

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

Система образования у нас как раз вообще от реальности максимально оторвана.

Так она выполняет роль «физкультуры для мозгов» чтобы мозги прокачивались. И также как в обычной физкультуре - мало кому в жизни требуется умение прыгать через коня или лазать по канату. Чем именно качать мозги - не так уж сильно принципиально. Не настолько уж давно были времена когда центрами науки были вообще монастыри где мозги качали изучением закона Божьего. Хотя это куда более оторванная от реальности штука чем нынешняя школьная программа.

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

А если для присваивания нужно городить именно оператор, то даже ← куда логичнее, чем :=.

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

А в качестве заменителя логичнее было бы использовать <-

watchcat382
()

Всю дискуссию не читал. Пролог упомянули уже? Я б начал с Пролога. А то эта ваша императивщина только мозги засоряет.

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

чтобы понимать как это всё работает.

Но зачем?

Чтобы программирование не превращалось в употребление магических заклинаний без понимания их сути. В советские времена была даже песенка про таких магов-недоучек: https://genius.com/Alla-pugacheva-half-educated-wizard-lyrics

Строчки оттуда:

Сделать хотел грозу, а получил козу
Розовую козу с желтою полосой
Вместо хвоста нога, а на ноге рога

Неправда ли - многий современный софт напоминает?

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

должно быть практическое применение.

Какое практическое применение у школьной математики? Да абсолютное большинство народа забывает ее сразу по окончании школы. Попросите окружающих вас людей решить квадратное уравнение не заглядывая в гугл с вопросом что это такое. Или спросите кому из них хоть раз в жизни на работе потребовалось оное уравнение решить.

Хотя и исключения бывают занятные. Например я,проживающий в сельской местности, применяю тангенс при заготовке дров для валки деревьев в нужную сторону. Общался по этому поводу даже с знакомым,отработавших с десяток лет профессиональным лесорубом. Он о таком использовании тангенса не знал. Аналогично,тангенсом можно вытащить застрявший автомобиль,о чем не знал ни один из опрошенных мной водителей,даже двое со стажем за баранкой в полсотни лет. Пояснения тут: http://www.fizika.ru/fakultat/index.php?theme=13&id=13226

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

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

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

← нет на клавиатурах (раскладках).

Но можно было бы писать <- Что куда более логично чем := Но «так сложилось». Интересно,что -> при этом в программировании встречается.

Кстати, подумалось что

a + b -> a ;

было бы логичнее чем

a <- a + b ;

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

watchcat382
()
Последнее исправление: watchcat382 (всего исправлений: 3)
Ответ на: комментарий от watchcat382

Да абсолютное большинство народа забывает ее сразу по окончании школы.

Забывают потому, что в школе нужно зубрить, а не понимать.

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

А что, программированию уже всерьез обучают с восьми лет?

Думаете, у вас мозги по другому работают? Уверяю вас, это совсем не так.

Вот именно - для постижения что такое окружность нужно сначала постичь довольно много математических абстракций

Или посмотреть на колесо от велосипеда. Арифметике тоже учат сначала два яблока и два яблока, будет четыре яблока, четырея яблока минус одно яблоко будет три яблока. А могли бы в первом классе просто ввести аксиоматику Пеаоно и обойтись без этих нелепых яблок!

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

В качестве «физкультуры для мозгов» и зубрёжка годится.

Это утверждение необходимо доказать.

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

Но «так сложилось»

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

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

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

советую раскладку Бирмана, где есть не только ←

Так ведь основная проблема не в раскладке,а в софте,который писался в расчере на обычную ascii-таблицу. Этими символами в коде «подавится» компилятор. Да и отображение их в IDE тоже под вопросом - не факт что в используемом там шрифте они будут.

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

ЯП не должен мешать

Вообще-то мешать он должен - мешать делать ошибки и писать неряшливый код,например слишком вольно обращающийся с типами данных.

watchcat382
()
Ограничение на отправку комментариев: