Java vs C# — что будет правильнее выбрать для написания учебника для школьников?
Добрый день!
Сейчас начинаю работу над написанием учебника по программированию для школьников, курс рассчитан с 7 по 11 класс. Не очень хочу писать его на С++ (язык знаю достаточно хорошо, но, как мне кажется, он не сильно хорошо подойдет для зеленых новичков). Выбор пал на Java и C#, но вот сам не могу определиться, какой язык выбрать - вроде и различия между ними небольшие, но, между тем, весьма существенные для школьников. Буду благодарен, если вы сформулируете свое мнение касательно этого вопроса.
Какие инструменты будут использоваться, какие библиотеки?
Насколько долго будут актуальны упоминаемые технологии?
Лицензия, кроссплатформенность? Мало ли в какой школе перешли на Линукс, а в какой нет.
1) Стандартная библиотека + фреймворки (типа FX для Java) + библиотеки по надобности (например, обработка SVG)
2) База по программированию + алгоритмы и структуры данных + работа с БД + оконный интерфейс + написание простенького сервера. В принципе, рассчитывается на длительное использование
3) Свободное ПО (но есть и Windows), в планах за лето перевести компьютеры на Линукс и дать детям возможность поработать с bash
DeviJoe, Нет смысла в школе учить что-то сложнее питона.
Детям нужен быстрый результат, а не объектно-ориентированное.
Учебник по джава и сам джава осилит меньше 10% в классе, единственное исключение - специализированная школа для разработчиков, где на программирование выделено как минимум 4-5 часов в неделю.
В выборе инструмента (любого) надо руководствоваться сначала двумя критериями:
- насколько инструмент подходит для задачи и под требования
- насколько исполнитель хорошо владеет инструментом
Ни на первый, ни на второй вопрос никто со стороны вам не ответит. Так что решать вам.
Если я правильно понял суть вопроса, то он спрашивает не НА каком языке писать, а О каком языке писать учебник для школьников. Т.е. что из языков C# или Java можно изучить школьникам в виде учебной программы.
Я бы сказал следующее - с учетом того, что в школах бывают дети с разным мировоззрением и каюдый школьник представляет из себя отдельный индивидуум, то лучше взять максимально простой язык для старта программирования. Потому, как если они не осилят какой-либо из этих языков, а отмечу что Java или C# не такие уж и простые языки, то вы можете убить в них желание заниматься разработкой в будущем.
Отсюда я бы выбирал среди интерпретируемых языков и с максимально простым синтаксисом и конечно же с низким порогом вхождения, ну и конечно же с возможностью быстро увидеть результат. Отсюда вытекает язык- python.
azerphoenix, я руководствовался принципами: статическая типизация, наличие качественных БЕСПЛАТНЫХ (в школе это важно) IDE, количество руководств и пособий, комьюнити разработчиков, гибкость и понятная логичная структура.
наличие качественных БЕСПЛАТНЫХ (в школе это важно) IDE
IDLE - среда разработки, которая уже встроена в python
Sublime Text 3, Atom, VScode, PyCharm Community Edition разве это го огромного количества IDE и просто редакторов недостаточно?
DeviJoe, увидел ваше сообщение в другом ответе про то, что являетесь поклонником Jetbrains. Так вот, рекомендую серьезно посмотреть на их продукты, так как:
1) У всех их продуктов (практически) есть бесплатные версии. Intellij IDEA Community Edition, PyCharm Community Edition и т.д.
Вот, насчет pycharm - https://www.jetbrains.com/ru-ru/pycharm/features/e...
В бесплатных версиях IDE есть все необходимое для разработки. Например, в Ultimate версии Intellij IDEA (java) включены такие продукты, как DataGrip, возможность инициализации фреймворков и т.д.
2) Так как предполагается использование их продуктов в учебных целях, то вы можете связаться с ними и получить бесплатно Ultimate версии на 1 год. А если у школы будет эл. почта в доменной зоне .edu, то каждый из школьников может получить их премиум продукты бесплатно на 1 год.
Что касается python, то в контексте стартового языка для школьников мне не нравится следующий момент - динамическая типизация. И сугубо мое мнение, уверен, что с этим многие поспорят, но Java, C# код намного понятнее, нежели python || ruby. Но это субъективное мнение.
azerphoenix, да, я сам пишу код на работе только в их IDE и сейчас уже сложно воспринимать что-то другое, кажется неудобным. Спасибо за подсказку о лицензиях, попытаюсь провернуть этот трюк.
Абсолютно солидарен с Вами касательно Python, точно не первый язык программирования именно из-за динамической типизации.
Питон не хочу брать принципиально, по крайней мере в качестве первого языка, в качестве второго в старших классах - возможно, но не первым - слишком уж много он позволяет новичкам. Та же динамическая типизация (можно обойти аннотациями, но все же) и отсутствие компиляции перед запуском
Собственно мы что то писали на Бейсике, что с тех пор пригодилось это умение рисовать в тетрадке и думать на уровне алгоритмов, эти самые пресловутые роботы. А так выбирайте C# приятная ide и возможность быстро накидать код без всяких этих лэйоутов и прочих композеров. Ну и сам язык приятней
Безусловно, умение думать, код в тетрадке, и понимание алгоритмов никто не отменял))) Хорошая практика, сам через такое проходил. Спасибо! Просто хочется с ребятами и паттерны пощупать, и оконные вещи поделать, и в старших классах маленький локальный сервер оживить.
P.S. С Visual Studio особые натянутые отношения, я из секты JetBrains, но видимо, придется самому поизучать. Rider для школ не подойдет
DeviJoe, VS && Management отличные штуки. Причем в Management есть удобнейшее средство по моделированию структуры БД.
Единственный недостаток студии это ее размер.