Версия PascalABC.NET 3.2

Как тут не вспомнить Паниковского? “Жалкие, ничтожные люди…” )))) Можно, конечно, пофантазировать о временах, когда выпускники школ будут поголовно суперпрограммистами, но лучше все же думать о дне сегодняшнем. А сегодняшние реалии таковы, что это самое программирование после завершения курса школьной информатики наверно 3/4 выпускников вообще никогда в жизни не встретят. Из остальных еще 3/4 помучатся с С++ при сдаче этого курса в вузах и тоже его забудут, как страшный сон. Что у нас осталось? 1/16 часть? Ради них мы 15/16 будем мозги засорять? так все равно их в школах не научат С++: во-первых, его толком среди учителей почти никто не знает и шанс, что узнают близок к нулю, а во-вторых, часовой сетки не хватит на изучение.

Как думается, почему ASP.NET для C++ не существует? В Мicrosoft одни олухи сидят?

Напоследок - цитата от Линуса Торвальдса. Посмеемся.

C++ is a horrible language. It's made more horrible by the fact that a lot of substandard programmers use it, to the point where it's much much easier to generate total and utter crap with it. Quite frankly, even if the choice of C were to do *nothing* but keep the C++ programmers out, that in itself would be a huge reason to use C.

1 лайк

А что, в русскую раскладку уже завезли знак ‘>’?

1 лайк

Понимаю вас прекрасно.

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

На форуме acmp создал ветку с предложением добавить ABC. NET, осталось подождать, что ответят.

3 лайка

На сайте acmp.ru честно и откровенно написали:

Мы же рекомендуем осваивать язык С++, который со временем станет наиболее популярным и в нашей стране.

Вот и вся причина их упорства в продвижении паскаля.

Очень надеюсь, что С++ никогда не станет популярным в России. Просто не используйте его на олимпиадах - тут ему и конец.

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

А скоро 2017 год…

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

Когда у меня спрашивают, какой язык программирования я бы посоветовал изучать, я задаю встречный вопрос: “Для каких целей?”. Если это первый язык и он нужен как подручное средство для записи и отладки изучаемых алгоритмов - это одно. А если это язык “для инвестиций”, т.е. человек хочет впоследствии устроится на работу и работать с этим языком - это совсем другое. Кому-то просто хочется “быть лучшим” на олимпиадах - и это третье.

“Первый язык программирования” должен быть ёмким, простым в изучении, дающим “быстрый старт” и вызывающим желание с ним работать. Он должен иметь четкие и простые синтаксические конструкции, но в то же время обладать большой мощностью. Всеми этими свойствами язык С++, увы, не обладает. Без “ручного” подключения большого числа библиотек для новичка он вообще сродни “большому ассемблеру”. Трудоемкость освоения С++ оценивается, как 5 из 5 - это язык для системного программирования, а не для обучения программированию. Для успешной работы с С++ нужно овладеть многими концепциями, что для новичка зачастую неподъёмно. Что мы имеем в итоге для тех учебных заведений, в которых С++ принят в качестве первого языка? Им нормально овладевают единицы, а основная масса остается “тёмной” и не может подняться выше уровня блок-схем. У этого большинства обучающихся не вырабатываются навыки “глобального” алгоритмического мышления, они не готовы идти в среду ООП (куда уж там начатки функционального программирования), потому что благодаря С++ видят задачу, как что-то размельченное на ячейки памяти, элементарные циклы и ветвления. Я беседовал с такими школьниками и это “печальное, душераздирающее зрелище” (с). Спрашиваешь об общем подходе к задаче, в ответ тебе что-то “вот тут сумма, значит, цикл пишем…”. Строка для них - однозначно массив символов; говорить о каком-то манипулировании на уровне слов текста - это что-то заоблочное. Я неправ? Ну что же, значит Вы беседовали лишь с теми немногими, кто выбрал программирование своей профессией, кому эта дисциплина интересна и он активно занимается в ней самообразованием. Прекрасно, что и такие у нас тоже есть.

Изучать язык, владея которым можно с бОльшим шансом устроиться на работу? Давайте посмотрим рейтинг востребованности специалистов с порталов России, ориентированных на поиск вакансий. 12.7 тыс запросов на PHP, 12.6 тыс - Java, 8.9 тыс - Objective C (Apple), 5.1 тыс. - SQL, 3.9 тыс. - Ruby, 3.7 тыс. - JavaScript, 3.5 тыс. - C#, 1.9 тыс. - С++, 1.6 тыс. - Python. Место С++ все увидели? Так так стоит ли ПОГОЛОВНО внедрять, что называется “от горшка”, С++ еще в школах в качестве первого языка, чтобы в результате прийти к ситуации, когда подавляющее большинство школьников вообще не поймут программирования, а понявшие потом не найдут себе работы? К чему трата таких огромных усилий? Чтобы писать олимпиады на радость господам из СибГУ? А не пошли бы они… (простите мне мой плохой французский!).

3 лайка

Всё верно написано. Особенно что касается изучения программирования в школе!

Вот решение “олимпиадной” задачи на нахождение суммы двух чисел на языке си:

//Реализация задачи №1 “A+B” на C #include <stdio.h>

long a,b;

int main(){ freopen(“input.txt”,“r”,stdin); freopen(“output.txt”,“w”,stdout); scanf("%ld%ld",&a,&b); printf("%ld",a+b); return 0; }

Это что за тарабарская грамота 50-летней давности?

И этому нужно учить детей в современной школе?

Хватит мыслить на языке ассемблера!

2 лайка

Это неполное решение! Вы не указали необходимые для работы этой программы #include с перечислением библиотек…

Безусловно, паскалевский код выигрышнее и нагляднее. var a,b:double; begin Read(a,b); Writeln(a+b) end.

Да и “старый, добрый Бейсик” не отстает DIM a AS DOUBLE, b AS DOUBLE INPUT a, b PRINT a + b

2 лайка

Это я так криво скопировал с сайта.

Должно быть так (решётку и скобки пришлось убрать, иначе от строчки остаётся только include):

//Реализация задачи №1 "A+B" на C
#include <stdio.h>

long a,b;

int main(){
  freopen("input.txt","r",stdin);
  freopen("output.txt","w",stdout);
  scanf("%ld%ld",&a,&b);
  printf("%ld",a+b);
  return 0;
}

Это только чтобы а и б сидели на трубе…

1 лайк

Потому что нужно использовать средства оформления кода. Должна быть отдельная строка вначале с тремя символами ` (обратная кавычка) и одна такая же строчка в конце.

А почему мы это понимаем, а остальные нет? Или сейчас мода на антиквариат?

Да, спасибо! Эти кавычки мне что-то напоминают…

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

Под “другими” я понимал не тех, кто здесь, а тех, кто там.

Я Вас вижу. Что касается реакции, то я полагаю, что не так быстро дело делается. Или ошибка не очень интересная…

@Admin Для функциональных типов есть новый стиль записи: real -> real. Нет ли чего-то такого же для процедур? В функциональных языках это обычно обозначается так: real -> () (процедура с одним real-параметром).

Для Вас - всё есть:

var p: real->() := procedure(x) -> write(1);

begin
  p(2)
end.

Боже, уверен был, что именно так и написал, но не работало. Сейчас всё работает. Спасибо!

Жаль. Я писал им с просьбой изменить версию полгода назад. Они обещали. Не сделали. Жаль

Тут к сожалению у нас не получилось сделать так:

var p: real->() := x -> write(1);

begin
  p(2)
end.

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

@Admin а ещё вопрос: процедура с одним var-параметром как будет выглядеть тут?

Никак. var-параметров тут нет, как нет и в Action. Для лямбд они у нас оказывается вообще не предусмотрены. Жуть

Только так:

procedure q(var x: real) := x += 1;

var p: procedure(var x: real) := q;

begin
  var x: real := 1;;
  p(x);
  Print(x);
end.