Об образовании.
На нашем факультете учат многим языкам программирования. Например, делфи, но выглядит это примерно так: "Смотрите, это Делфи. Идём дальше."
На нашем факультете учат многим языкам программирования. Например, делфи, но выглядит это примерно так: "Смотрите, это Делфи. Идём дальше."
А у нас паскаль был целый семестр. Назывался курс "императивное программирование". Но я из него некоторые полезные вещи для себя взял.
У меня паскаль был в 6 классе в школе. А делфи в 10. Хорошие были времена. Нам препода дали из колледжа технического. Этот препод "заменял" кого-то лет 8 в школе, где я училась, он ушел и снова школьная информатика где-то на уровне "а теперь открываем ворд и учимся печатать".
Судя по тому, как жопашно и криво-косо студенты-аспиранты оформляют свои научные работы, в большинстве учебных заведений даже ворду нормально не учат.
Этот латекс студенты и ученики видели только на одном месте.
И это не на компьютере.
Как вы думаете, каким будет качество офоомления подобных рефератов?
Расскажите пожалуйста поподробнее о учебе, что изучали, какие предметы были, какой выпускной дипломный проект был. Очень интересно узнать про учебу на информатика в Германии от первых рук.
Много математики. Много комп. Архитектуры и электротехники. Теоретическая информатика (из за неё многие провалились). Императивное, процедурное программирование и ООП. Это то, что первое вспомнилось.
Учёба нацелена то, чтобы ты мог из говна и палок сделать комп и запрограммировать его (мой последний пост-там пара фоток с примерами).
Короче пиздец как сложно учиться, особенно иностранцам.
Эх блять, зависть. Тупо зависть. Наше образование и не сравнится с их. Приходиться всему самому учиться, начиная работать с простого монтажника(к примеру) и постепенно расти до инженера или специалиста. Если не секрет, сколько вам лет? Вы сейчас живете в Германии и работаете программистом? В РФ какое образование получали?
Ну у нас есть один плюс. Ты поступил - ты 99% закончил.
Тут я до последнего дня не был уверен. До самого последнего экзамена, до защиты дипломной. Это просто адский стресс. Вылет порой достигает 90% студентов. У нас поступило 50, на выходе 5 осталось.
У нас на тройку нужно сказать, или решить хоть что нибудь. Тут ты должен рассказать на 5 и допустить одну ошибку. Если хочешь оценку "отлично" - ты должен владеть инфой как бог. Часто бывает, когда рассказываешь преподу инфу, которую он сам не знает и гуглит при тебе же. Но это не потому что они глупые, а потому что наука быстро развивается.
Мне 31, программистом не работаю. С такой учёбой мне совесть не позволяет. Ибо программирование это самое лёгкое в профессии информатика (сейчас со мной будут спорить)
Работаю юристом в сфере расследования ит преступлений, так как кроме информатики закончил ещё и юрфак тут.
На родине работал следователем.
А, ещё вот что. Тут нечему завидовать. Это ебучий адский труд и проебаная молодость, особенно если ты нищеброд, как я. Нужно работать где придётся, нужно платить за хату, учёбу и еду, страховку и пр, и ещё два сложнейших факультета одновременно. Я только сейчас вот отсыпаться начал. Ну его в пень такие достижения, короче.
Зато образование пиздатое. Внушает уважение, то что ты не технарь по первому образованию и осилил технарьский вуз.
var vvod:string;
begin
writeln('Press F to pay respect');
readln (vvod);
if vvod = "F" then writeln ('Respect paid successfully');
end.
Так ведь логичней
Только ошибка будет.
if vvod = 'F' - так правильно.
И нефигово было бы добавить
if UpperCase(vvod) = 'F'
if vvod == "F" then writeln ("отдать честь");
UPD: А не, соре, обосрался. Все правильно было, там же двоеточие уебищное, если нужно приравнивать.
Program Idi
Var you: string;
Begin
readln(you);
If you = "idi" then
Writeln("nahui := := :=");
End.
Та хули минусы-то ему?
Паскаль разрабатывался как язык для обучения. С более понятным синтаксисом, по сравнению с C.
Разница между сравнением и присвоением, например, в несимметричности операций. Несимметричность символа это подчёркивает.
Суть в том, что в паскале сложнее ошибочно предположить, что := это сравнение, чем, например, перепутать = и == в С и т.п.
Непонятно, почему вообще приходится объяснять, что на вкус и цвет все фломастеры разные.
Не ископаемое, а реликтовое. Баш до сих пор используется повсеместно.
Не недоразумение, а скриптовый язык и среда.
Спрашивали про язык? Получите ответ.
> Не ископаемое, а реликтовое. Баш до сих пор используется повсеместно.
Баш (к счастью) потихоньку вымирает - скриптовое направление мигрирует на питон, SysV вытесняется (да, собственно уже вытеснилось) SystemD.
> Не недоразумение, а скриптовый язык и среда.
Как раз недоразумение с тщательно расбросанными граблями.
> Спрашивали про язык? Получите ответ.
Формально brainfuck тоже язык.
Скриптовое направление ещё потрахается с выбором версии питона.
2.7 рулит, и неизвестно, когда сдохнет.
3.* пока что ждёт та же участь, что и минорные версии php 5.*: на разных машинах и разных дистрибутивах из коробки будет своя версия, и придётся либо оглядываться на самую древнюю из популярных, либо дополнительно ставить руками нужную.
Писать инсталлятор для скрипта - такое себе удовольствие.
А баш - это и в африке баш. Для простеньких бытовых нужд его достаточно.
В конце концов, инсталлятор убер-скриптов со свежим питоном придётся именно на баше писать.
2.7 рулит, и неизвестно, когда сдохнет
Поддержка вроде только до 20 года заявлена, дальше — живой мертвец.
ЗЫ. Фанаты баша - хоть для себя признайте что он ужасен с любой точки зрения. Единственный его плюс - он лучше .bat-файлов, которые и так уже практически вымерли.
у меня когда-то на bat работала вся архивация нашей конторы. Они не падали, не зависели от версий, у них не было сжирания памяти (как у крутой виндовой версии с понтовой оболочкой). И именно они, в конце концов, спасли контору, когда у нас сперли компы :)
вот нашел архивацию почты:
7z a -tzip pochta.zip Profiles\
MD d:\pochta.!\%date:~-10%
copy pochta.zip d:\pochta.!\%date:~-10%
del pochta.zip
А вот другие примеры:
rem поместить в папку с папкой !_my-Book\
7z a -tzip my-Book_.zip
set mytime=%time%
set namefile=my-Book_
set namePapka=my-Book_
set namePapka=%namePapka%%date:~-10%
set mytime=%mytime:~0,2%-%mytime:~3,2%-%mytime:~6,2%
set mydate=%date:~-10%
set mydate=%mydate:~0,2%-%mydate:~3,2%-%mydate:~6,4%
set namefile=%namefile%%mytime%_%mydate%
copy my-Book_.zip %namefile%.zip
MD d:\Arhiv\%namePapka%
copy %namefile%.zip d:\Arhiv\%namePapka%
del my-Book_.zip
del %namefile%.zip
в корневик кинуть сам архиватор ZIP
Кстати, я на днях нашел баг, явно появился в вин7: если архивацию делать ночью с 0 часов до 9:59, то не работает :) так как ноль в числе часов заменяется пробелом и DOS-имя некорректно.
Ну, давайте я покидаюсь камнями:
Ни для одного действия (включая архивацию) не проверяется код возврата. Зачем copy+del вместо move (а во втором скрипте аж дважды)? Про то что можно было сжать сразу в нужный файл я просто молчу.
Фанат zsh, powershell, или может быть, windows scripting host'а?
Баш в любых никсах есть практически из коробки, даже в бизибоксе. А питон, возможно, дополнительно ставить придётся. А zsh - вообще удел, назовём это добрым словом, энтузиастов.
Бат, в свою очередь, есть в любом досе и виндосе.
И как это меняет то, что баш - неудобное и нелогичное говно мамонта, которое само по себе ещё и ничего толком не может?
> Бат, в свою очередь, есть в любом досе и виндосе.
Начиная, если не ошибаюсь, с семёрки там и ps и wsh тоже есть.
Разве что для запуска других приложений с передачей параметра. Хотя, некоторые через ярлыки извращаются.
Не знаю для чего их сейчас использовать, кроме, может быть, тривиальных действий. Есть powershell, есть wsh - и то, и другое удобнее и позволяет намного больше.
Ой да перестань, вот ты просто еще Linux нормальный не устанавливал. Вот Сережка из соседнего отдела установил и все как у людей стало, бороду отрастил, килограмм 30 набрал, а какой свитер у него вязанный. Дал бог Ubuntu даст и любовь к bash.
If "отдать честь";
then write F
end.
//Edit Error Mod ON
Procedure B_KPOBAT();
Begin
If честь="отдать"
Then write("Ложись в кровать")
end;
//Edit Error Mod OFF
да, это тоже. Просто точка с запятой в глаза бросились, в свое время я ее забывал ставить, а теперь я ее ставлю даже там, где не надо.
И что этот комментарий со ссылкой на комментарий значит?
В паскале нет стейтмента write, есть встроенная процедура write().
Отдаёте честь - отдавайте её по уставу. Где шапка program? Где скобки? Где бегин-енд?
Паскаль хорош для изучения основ программирования из-за простоты освоения. Главное в программировании это логическое мышление.
Когда меня, очень много лет назад, университетский преподаватель надрачивал на олимпиаду по информатике, то говорил, что нужен именно алгоритмический стиль мышления. А также говорил, что логика тоже важна, но алгоритмический сталь -- важнее. Из чего я делаю заключение, что это не одно и тоже
Также я вот прямо сейчас пробежался по верхам статей про алгоритмический стиль в статьях и ничего про логику в них не нашел. Похоже, это разные категории
Логическое мышление - построение логических рассуждений, разве построение алгоритма не входит сюда? Я понимаю именно в таком ключе.
бывают ситуации, когда программирование не поддается логике. Как примеры: undefined behaviour у cpp или же javascript целиком.
Не надо быть таким чувствительным -- лицо рукой сотрешь. Я имел в виду, что это разные категории. Кстати, в приведенном отрывке сказано, что наличие логики не гарантирует наличие алгоритмического мышления.
И вот: https://sibac.info/studconf/science/xxii/78098
Для алгоритмического мышления характерны следующие черты: умение находить последовательность действий, необходимых для решения поставленной задачи и выделение в общей задаче ряда более простых подзадач, решение которых приведет к решению исходной задачи. Наличие логического мышления не обязательно (хотя и достаточно часто) предполагает наличие мышления алгоритмического. В основе развитого алгоритмического мышления, безусловно, лежит сформированное и развитое логическое мышление.
Любая книга статистически не мертвого языка, наречия ничем не хуже букваря во всех ракурсах, но учат почему читать не с Войны и мира.
А вы вообще профессионально связаны с разработкой? А то создаётся впечатление, что о паскале и остальных знаете лишь по наслышке
Паскаль - говно и нинужно, кроме поддержки легаси. Очень уж много языков сегодня, а память человека не резиновая, лучше идти в ногу со временем и учить то, что может понадобиться в будущем
ну не нужно бросаться в крайности, всё же разница между хотя бы тем же Си и Паскалем явно не тех же масштабов, чем между Войной и миром и букварём. Я бы даже не сказал, что эта разница в сложности вообще существенна.
Тот же питон в этом плане ещё проще, но он уже современный и хороший язык. Но нет, давайте пичкать паскалем
В чём проще то? Вот тут многие говорят, что пайтон проще, что на нём проще учиться, что на нём даже проще изучать алгоритмы (лол, что?).
Откуда это вообще? Вы как будто сравниваете какой-нибудь лисп и пайтон в отношении пятилетних детей
Нельзя давать язык с динамической типизацией в качестве первого, когда вы уже это поймете. Сначала в голове должно отложиться что число - это, мать его, число, и его нельзя принтить без явного приведения типа. Что в памяти переменные по-разному представлены.
Хотя это я сейчас говорю о программистах, а не формошлепах.
Я сейчас наверное не очень популярную вещь скажу. Но если хочешь знать как на самом деле работают программы, то бери СИКП читай и обязательно решай оттуда задачи. Та книга, котороя перевернула мое мировосприятие. Та книга, после которой ты говоришь себе, "так вот оно как на самом деле". Лисп простой как пять копеек, и в этом его мощь. Код как данные, чистые абстракции. На протяжении всей книги тебя учат одному из столпов программирования, думать абстракциями, строить их, управлять их уровнями. И все это без оглядки на весь груз того что тебя заставляет дополнительно изучать другие ЯП, будь то паскаль/C/делфи/что то еще. Ты буквально с нуля, имея несколько стандартных возможностей лиспа, создаешь кирпичик за кирпичиком, строишь структуры данных которые настолько естественны, человечны, изящны. Это так вставляет, что просто словами не передать. Я правда честно хз насколько это подойдет новичкам, я к нему пришел уже имев достаточный опыт программирования. Я даже взял отпуск за свой счет на несколько месяцев, что бы не просто его прочитать, а именно прорешать. Ох, что то понесло меня.
А чем вам не угодила динамическая типизация питона? Возможно вы имели ввиду сильную и слабую (строгую и нестрогую) типизацию? Сюрприз, но Python как раз таки язык с сильной типизацией, так что строку с числом сложить не получиться, это вам не JS. Запринтить int конечно выйдет, но черт возьми 21 век, считайте что это синтаксический сахар. Зато он чертовски лаконичен и это огромный плюс при изучении алгоритмов, думаю при обучении это приоритетнее. И в отличии от паскаля, он жив.
Возможно, я имел в виду именно динамическую типизацию. Сахара при обучении быть не должно. При обучении. Я не знаю, сколько раз надо повторить "при обучении", чтобы до апологетов питона/жаваскрипта/сишарпа/whatever дошло.
P.S. пишу на питоне.
Вот кстати да. Но в шарпе я (можете считать меня ретроградом) вижу тот же минус, что и в жабке - виртуальную машину, которая скрывает работу с памятью. Хотя для вещей вроде алгоритмов, парадигм шарп подходит весьма хорошо имхо.
Ну так что не так с динамической? Ну вывалится ошибка несоответсвия типов данных в рантайме, а не при компиляции, что тут такого страшного, студент же поймет что ошибся. P.S. пишу на Java, могу не знать каких-то тонкостей питона
Все с ней хорошо. Но сначала у человека должно появиться четкое понимание системы типов и того, как вообще эти типы работают. Понимание. Понимание типов, а не того, что возникает ошибка. Почему куча народа меряет Паскаль мерилом коммерческой разработки? :(
1. Юношеское/программитское "хочу работать/писать программы прям сейчас"
2. Потому что не видят ситуацию глазами преподавателя: у них нет ни статистики результатов обучения, ни понимания, что учатся разные люди по уму и по типу мышления.
3. Некоторые реально настрадались в ВУЗах, где давали Паскаль не потому что полезно, а потому что так в программе было 30 лет назад.
в школе в любом случае бейсик изучают и хорошо изучают, если есть желание связать себя с программированием
С дуба рухнул? Какой Бейсик в школе?
У нас был Робот (двигать робота по клеткам) и три урока по Паскалю. Всё.
Я изучал python как первый язык. Нормально. Потом когда понадобилось быстро пересел на C#.
Во-первых python это живой язык, в отличии от Паскаля, можно сразу в продакш, грубо говоря.
Во-вторых он очень лаконичен и точно тоже прививает кодить правильно.
В-третьих у него великолепная документация, в отличии от Паскаля.
Я не понимаю ваших проблем с привидением :)
Я немного учил Бейсик в школе, немного Паскаль в университете, а нормально начал с пайтона.
Синтаксис не важен, но если взять python, то ты можешь сразу применять в бою, на реальном проекте. Паскаль Бейсик и Фортран вряд ли сейчас будут применяться, особенно на новичковском уровен. C++, да можно прямо в бой, но вот проблема в том что он очень сложен. Чтобы написать хоть что-то нужно написать довольно много знать. Python же прост и лаконичен и кроме того прививает хороший стиль.
На stackoverflow 1млн вопросов по python и 2К по паскалю. Там есть множество отличных примеров.
Есть docs.python.org есть отличная документация.
причем тут вопросы и документация?
может причина обилия вопросов в другом? и по паскалю всё понятно, так как справка, что есть в нем содержит полную информацию с готовыми примерами.
При том что Паскаль мёртвый язык.
Зачем учить то что никогда не пригодится?
Можно изучать то же самое на современном языке, который востребован и нужен.
В Python, кстати, тоже есть справка и множество примеров. Обилие вопросов достигается широтой использования. Если поискать, то почти всё уже написано.
В принципе нет никакой разницы между c++\c# и python, но в самом начале python удобнее своей лаконичностью и прививанием хорошего стиля.
в программировании микроконтроллеров особенно пригодится, там с типами данных можно программу похерить.
Потому что из-за динамической типизации в начале обучения новые программисты не составят конкуренции старым.
сейчас прохожу в вузе параллельно Си и Питон. От всей этой динамической типизации уже блевать хочется. Хуй поймешь что в коде происходит. Еще и массивов нет, бесит.
Вчера писал машину Тьюринга и в листе из строк (по сути скорее из символов) забыл привести один int к строке. В итоге join ругался на типы данных в списке, минут 20 убил на поиск пропущенного str(). В си я бы просто объявил массив char.
Дело навыков. Я на такую ошибку убил бы несколько секунд, т.к. все написано в логах ошибки. Требуются только знания языка. С таким подходом можно многие языки забраковать. Если не знать Си, то и там будешь тратить длительное время на дебаг.
На самом деле наоборот, зачем массивы во всех остальных языках, когда листы гораздо удобнее и не менее производительные. Атавизм.
Чувак, массив - фундаментальная структура.
А список, стек, хэш-таблица, древовидная структура и т.д. - это все производные, в реализации которых применяется массив.
То же самое можно сказать о указателях, но почему-то от них отказываются в угоду упрощения.
Насчёт массивов то же самое, работаю джавистом, даже не помню когда в последний раз использовал чистый массив. В универе, наверное
Удобный для чтения синтаксис, особенно для новичков. Алгоритмы лучше и проще показывать на его примере.
Алгоритмы лучше и проще показывать? Чем условный двоичный поиск будет проще и понятнее, если написать его на пайтоне?
Мне кажется у вас какие-то предрассудки
Питон больше навредит, ибо нету нормальной системы типов, нету стабильной типизации, всяких манипуляций с мутабельностью) Вот хаскель заебись)
Ничего, потому что мы говорим об учебном языке. Он должен быть наглядным, простым для чтения. Никаких монстров вроде "end.", "program", "begin" и иже с ним, там быть не должно. Или это цель такая: сначала максимально изнасиловать мозг учащегося подробным синтаксическим мусором, чтобы потом ему было проще писать на других языках?
вообще-то играет роль их назначение, структура и особенности работы.
и этот "мусор" дает представление о структуре программе и упорядочивает описание данных. Тот же Си, если не ошибаюсь, использует ту же структуру.
Лол, ну давай заменим begin и end на { и } и получим C/C++, C#, Java, JS, PHP, что еще в голову взбредет... Но нет, давате использовать ебучие отступы)))
Ты хочешь сказать, что
begin
end
читается хуже, чем
{
}
?
Хочешь сказать, что мешанина {}[]():{}(0())({}]{}{?<>.<()<.}{ читается намного лучше, чем слова человеческого языка?
Никлаус Вирт разработал паскаль для обучения студентов.
Это изначально язык для преподавания, то, что на нём коммерцию начали делать - это вторично.
Никлаус Вирт помимо Паскаля разработал ещё и Modula и Oberon, которые весьма его напоминают, но существенно более расширены.
Тоже для обучения, надо полагать?
Какое отношение количество коммерческого кода имеет к назначению языка?
Это как с автомобилем: из того что модель грузовика не стала популярна не следует, что он планировался как автотренажёр.
Очень простое: я не знаю, для чего он их придумал. Скорее всего - совершенствование паскадя, по-крайней мере на своей лекции он именно это говорил.
Но лично я ничего не слышал об их практическом применении.
Вывод - либо только для обучения, либо для фана (такое тоже бывает).
Ни из того, что вы ничего не слышали об их практическом применении, ни из того, что этих применений действительно чуть меньше, чем нихрена (считать ли Bluebottle/Oberon OS за таковое ...) - не следует, что эти языки разрабатывались исключительно для обучения. Аналогия про грузовик остаётся верной.
PS Вас случаем не Олегом звать?
Cи гамно с его грёбанные черточками и скобочками
Си долго не мог пролесть в разрешенные в промышленности из-за убогочитаемости! И я согласен с ними.
а JS чем не угоден? вполне норм для новичка, да и практическая польза есть, хоть fed-ом стажером можно быть потом
Вот это ему тоже вредно знать. Такое вообще живым людям вредно знать, это надо запретить на мировом уровне.
На самом деле относительно всё просто, если конечно задаться целью это понять. По сути это тупо оптимизация, описанная в спецификации.
По ней, чтобы не проверять именно двойное условие (больше или равно) JS проверяет выражение «x < y» (где «x» у нас null, а «y» — 0). Раз выражение null < 0 === false, то интерпретатор отдаёт true на null >= 0.
Но если прям по существу, то такой пример в реальном проекте просто никогда не встретится, и его используют исключительно для трололо
Но если прям по существу, то такой пример в реальном проекте просто никогда не встретится, и его используют исключительно для трололо
Почему же он не встретится? Очень даже. Если я получаю данные с третьей стороны, то она вместо ожидаемого числа может выдать null, и если я не делаю предварительно проверку на is null, то результат сравнений непредсказуем.
В остальном, всё хорошо, но оптимизировать надо с умом, а именно так, чтобы не нарушалась очевидная логика. Конечно, можно наделать в языке миллион таких «оптимизаций» и всё описать в доке, но для языка неочевидность — это минус.
Ну если уж говорить про очевидную логику, то отчасти и она есть :D С точки зрения математики, если что-то строго меньше нуля, то оно точно будет больше или равно этому нулю. Но вообще согласен, такой угол можно было давно сгладить для конкретных типов данных.
Ну а проверка на is null — это само собой разумеющиеся :D Строгую проверку «===» никто не отменял
Это как раз последнее, что я помню (как раз при "Embarcadero"): зачатки разработки для мобилок и всеобщий гнев на то, что это появилось раньше x64 компилятора.
x64
Android
iOS
MacOS
Linux
Restful WebAPI из коробки
JS-фронтенд из коробки
FireDAC на туеву хучу видов БД
Бесплатная редакция professional до 5000$ в год (она же community)
Что-нибудь ещё есть, но я пару лет не слежу уже.
жесткий во всех отношениях:
1. правила оформления кода;
2. требует описания переменных с указанием их типа;
3. лаконичные команды, схожие с живым человеческим языком, без сокращений;
4. хорошо структурирован;
Для того же ТурбоПаскаля:
5. возможность линковать куски закрытого кода, что уже делает близким к реальному профессиональному средству разработки программ;
6. делать компактные exe-файл.
Какие "консольники"? В Дельфи визуальное программирование GUI, было сделано задолго до того, как это (криво и косо) было реализовано в VS. Работа с базами данных там тоже была реализована задолго до VS. В Дельфи даже 7 версии отличный дебаггер, не хуже современного VS.
Я по роду деятельности несколько проектов поддерживаю, в Дельфи, в C++ и в С#. Единственное, в чем VS опередило Дельфи - в веб-программировании.
python
минимализм, ничего лишнего, никакой магии.
В отличии от Java, C#|C++, где с самого начала идёт куча всего непонятного для человека...
Python это вообще по моему "найди самую подходящую библиотеку и она сама всё сделает"...тем и прекрасен)
А если я поддерживаю проекты на Delphi, VS C++ и C# и по результатам своего опыта могу сказать, что самое эффективное и экономичное решение - это реализовывать проекты (десктопные) на Delphi?
Не зря ведь цена Дельфей выше, чем у Студии.
ну да. javascript То новичкам самое оно, с его
2 + '2' = 22
и
typeof null
"object"
и ещё кучей всего подобного
Если обучение идет посоедовательно и в процессе нет магии , то лучше усваивается.
В C сразу же уже с первой строчки #include "stdio.h" появятся вопросы и много сложных и непонятных, для человека который не умеет программировать вещей. По хорошему их следует объяснить. В C++ аналогично, но хоть без ООП сразу можно. А в Java сразу ООП идет. Это ведет к тому что человек должен использовать сразу эту "магию" непонятную.
когда учился, честно говоря, было трудно внезапно врубиться в си-подобные языки. Что в прочем и привело к тому, что после окончания вуза я звукач а не программист, по всей видимости.
после Паскаля (в среде Делфи), C++ и прочие до диезы, реально как-то мозг ломали многим. Паскаль очень удобен по синтаксису, ну или привычка, черт его пойми.
С одним только определением переменных в разных модулях, правильно распределить определения и объявления в в h и cpp файлах - уже можно ебнуться. Вот студенту только это и надо.
Ну дельфи для обучения вполне себе. Строгая типизация, ООП, формочки и кнопочки в визуальном редакторе - можно научиться делать простейшие штуки почти методом тыка.
Потому что он хорошо проработан с академической точки зрения. В нем нет лишних вещей. Нет "фич", "сахара" и "свистоперделок", которые программисты просили добавить в него автора, как с С++. В нем нет противоречий, исключений, сложностей, которые нужно выучить (охуеть сначала от их нелогичности и вообще от их наличия) и отслеживать. Язык описания новых типов и переменных прост - разбор и построение идет слева направо, сначала имя, двоеточие, потом выражение типа. В С и С++ для описания переменных и типов нужно при разборе от имени двигаться вправо, затем влево. В случае сложных выражений - нужно несколько раз вправо-влево-вправо-влево. И вот такие сложности нужно сначала выучить, набить на них руку и глаз. В С++ система ООП, прямо сказать, ебанистическая сверх меры. Одни и те-же слова, поставленные в разном порядке, дают совершенно разные по смыслу конструкции. В Delphi одно слово обозначает ровно одно, вставлять его в конструкцию можно только в одном, предназначенном для него месте.
Все это приводит к тому, что за семестр освоить С/С++ (без применения ООП!) совершенно нереально. Точнее, если навалиться на С/С++ - то можно, но изучать одновременно в рамках одного курса язык и программирование алгоритмов - абсолютно нереально.
Delphi же можно ознакомиться за три-четыре занятия, а весь остальной курс можно посвятить алгоритмистике. Я уже не говорю, что визуальное программирование в Delphi абсолютно на интуитивном уровне, в то время, как на освоение визуального программирование на С/С++ у вас может не хватить семестра.
-----------
И не надо говорить, что я не знаю С++. Прекрасно знаю. Более того, чем больше программист продвигается в знании С++, тем больше у него накапливается отвращения к этому языку. Если вы руководитель и ваша цель - десктопное приложение, то самое разумное решение - применять Delphi. Web-приложения на Delphi не сделаешь, точнее, там это сложно, применяйте другие языки.
1. В Паскале проще синтаксис объявления типов и переменных.
2. Проще описание циклов.
3. Проще case-switch, без break-ов.
4. "Правила" расстановки точки с запятой - точка с запятой разделяет операторы.
5. Синтаксис возврата прост - это присвоение переменной Result. В то время, как в Си нужно определять переменную и ее возвращать. Легко впопыхах определить переменную для возврата, проинициализировать, сделать расчет и записать в нее результаты. Потом через некоторое время, добавляя код, повторно определить другую переменную и ее вернуть. При этом первая в лучшем случае останется мусором, с худшем - там будут невозвращенные данные, что выливается в труднонаходимые и не объяснимые ошибки выполнения. В Паскале таких проблем не может быть.
6. begin-end - ближе к человеческому языку. Обрамление кода begin-end лучше цепляется при быстрой промотке кода. Кроме того, использование служебных слов в качестве структуризации кода унифицированнее выглядит. В Паскале все служебные слова - это слова, что if, что что for, что begin-end, в Си же одни служебные структурирующие слова - это if, for, switch, а блочные служебные слова - почему-то скобочки. А в дальнейших развитиях, С++, C#, это и квадратные скобки, и угловые.
7. Определение в Паскале всегда быстрое и четкое. Если переменная - строка начинается с var, если определении типа - type, если процедура - procedure. Когда эти служебные слова прижаты к левой части кода, это дает возможность быстро проматывать текст, при этом глаз быстро схватывает эти маркеры. В Си/С++ же вид определения полностью определяется контекстом и комбинацией скобочек, причем по-разному, в частности, определение функции - без служебного слова, а вот определение типа - typedef, да еще struct, да еще для struct надо тэг указать, и все это в неочевидном порядке. А для шаблона - template. А вот лямбду без служебного слова, чисто комбинацией скобок, причем в умопомрачительном порядке. В Паскале-Дельфях все просто: служебное слово - имя - определение. Везде один порядок.
Вообще, складывается впечатление (и необоснованное), что Паскаль ПРОЕКТИРОВАЛСЯ и создавался унифицированно, А С/С++ наращивался костыль за костылем, по мере озвучивания хотелок.
Как-то так, пардон за длиннобукв.
почему нельзя при этом использовать плюсы или тот же java/python?
у совсем глупых и с паскалем будет плохо
просто глупых как-то и не жалко
средние/сильные - хоть вынесут что-то полезное из школьного образования/смогут куда лучше пилить олимпиадки