Комментарии 538
Помню в 11 классе у меня был друг, с которым мы вечно любили похвастать знаниями по информатике. Так вот в конце года преподаватель раздал всем бумажки с 7 задачами для самостоятельного решения. На вопрос «а на каком языке можно писать?» он ответил — на любом. Это он сделал зря, так как за вечер все задачи с этого листочка были написаны на разных языках программирования, хотя сам препод паскаль-то с листочка читал.

Правда нужно хорошо знать препода. И знать прокатят ли такие «шутки» или нет.
Ой, да я вспомню сейчас что-ли. Ну там небыло GUI, это ж 11 класс, простые сортировочки, массивчики, строки. Поэтому использовалось все, что можно найти консольного, типа Pascal, C++, Python, Bash, Perl, PHP…
Хех… нынче бы был набор вроде «Skala, Io, Haskel, Erlang…» и так далее =)
Вспомнилось, как пару лет назад один первокурсник на форуме кампуса попросил ему лабы написать. Забыл только уточнить, что на C надо. Ну мы и написали. Сортировочки, системы счисления, ещё что-то. Всё, разумеется, на Lisp — тогда он наши умы занимал.
В таких случаях реальный выход для препода без потери лица — тестирование готовых программ. В чем проблема?
похоже на башорг-«когда я им говорил что можно использовать любой язык программирования, я не думал что это будет брайнфак»
Ой… да это не самое страшное. ИМХО по сравнению с Malbolge, brainfuck просто отдыхает.

ru.wikipedia.org/wiki/Malbolge
«Malbolge настолько сложен для понимания, что код первой программы на нём сгенерировала другая программа, написанная на языке Lisp, через два года после появления самого языка Malbolge.»
В процессе чтения увлёкся и забрёл по ссылкам в JAPH. Да, поистине, великий язык Perl:

not exp log srand xor s qq qx xor
s x x length uc ord and print chr
ord for qw q join use sub tied qx
xor eval xor print qq q q xor int
eval lc q m cos and print chr ord
for qw y abs ne open tied hex exp
ref y m xor scalar srand print qq
q q xor int eval lc qq y sqrt cos
and print chr ord for qw x printf
each return local x y or print qq
s s and eval q s undef or oct xor
time xor ref print chr int ord lc
foreach qw y hex alarm chdir kill
exec return y s gt sin sort split


А увиденное тут просто повергло в шок :)
некоторая ниша специалистов (условно — хакеры) за это его и любят, что можно написать read-only код без обфускаторов и который реально сможет разобрать только автор кода, и то думаю не всегда
Любую программу на Perl можно прочитать. И это не так сложно как кажется. Тем более, если есть подстветка синтаксиса.
Еще можно скормить программу перлу с ключом -MO=Deparse и получить на выходе отформатированный код.
А есть еще замечательный такой язык J. Код несложной программы на нем выглядит так (переменные, естественно, были заданы раньше):

    +/p:i.(p:^:_1 (a))

Суть его в том, что он работает как естественный язык, т. е. в нём есть прилагательные, наречия, глаголы, существительные и т.д. Но синтаксис при этом настолько нестандартен, что с ходу окунуться в язык чрезвычайно непросто =)
нам задавали в начале семестра 20 задачек, которые можно было писать на любом ЯП. И тоже читает паскаль с листочка. В итоге, на чем только ему не сделали задачи. У меня было, в общей сложности, 5 языков. И то последние дописывала «на скорую руку», ночью уже на паскале. по 5 минут на прогу.

Как оказалось потом, проверяли их 5 преподов различной степени трезвости.
К подобным топикам нужно прикладывать фотку, я читаю.
Извините. Показал свою неграмотность на людях. Мне стыдно.
Йащетаю, что не стоит этого стыдится, ибо что сделано, то сделано. Нужно просто запомнить свой «промах» и больше такие ошибки не делать.
в профиле есть — так что не бойтесь, я не бородатый сисадмин в свитере, ради прикола пишущий в женском роде ;)
тэкс а как его собирать под убунтой? какой нибудь make скриптик бы или инструкцию)
оно юзает gmake и основано на qt, так что на убунту надо эти дела влепить сначала
Получаю второе высшее по программированию, сам же родом из энергетики :) Работал только программистом, всегда по опенсорсным темам.

Для прикола баловал преподов программками на питоне с++/qt, особенно же кайфую от составления отчетов на латехе в емаксе. В принципе, до сих пор ни один преподаватель не ограничивал меня в выборе языка или средства реализации подобных курсовых. Даже энергетики вытерпели диплом, исполненный на octave вместо какого-нибудь ворованного matlab, maple или mathematica.

самое страшное, с чем пришлось столкнуться — паскаль. И чего в универах так любят мертвечину?! Давали б людям сразу какое-нибудь приличное средство, которое затем можно было б в курсовых или, если уж на то пошло, работе.

Так что одобрямс полный вам, девушка!
я паскальные лабы делала под Лазарусом… вот уж точно — живая мертвечина, «как вы яхту назовёте — так она и поплывёт» :)
>«писать это всё кое-как на остоедреневшей дельфятине»
>«в отличие от большинства подобных проектов, пишущихся на Delphi исключительно под Windows и использующих ни с чем не совместимые форматы данных, мною также была поставлена чисто концептуальная задача — использовать самые современные кроссплатформенные технологии проектирования и разработк»

Откуда такое пренебрежение к дельфи? На нём можно писать вполне себе кроссплатформенные приложения. Есть же киликс, есть дельфи дот-нет. Глупости говорите.

Но, конечно, ваш интерес всяко лучше безразличия остальных.
Вы правы, последняя версия датирована 2002 годом. Но есть Delphi Prism — это Win, Lin, Mac. Ну, и даже можно писать под новомодный iPhone.
Если сможешь написать на паскале-значит сможешь и на чем угодно.
В Университетах дают фундаментальное образование, а не подстраиваются под ваши желания.

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

«Закончила и готовлюсь к защите. А попутно готовлюсь к тому, что преподаватель будет хлопать глазами, аки невинное дитя, и спрашивать — «ЧТО ЭТО»»

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

Плохо.
какое отношение имеет паскаль к фундаментальному образованию? лично мне давно уже все равно, на чем именно писать, это конечно. Но, честно-честно-честно, вспоминать паскаль желания нет ну никакого. тот факт, что он до сих пор встречается, могу объяснить только консервативностью и инертностью преподавателей. К счастью, далеко не всех; многих людей не могу не вспомнить добрым словом..!!!

Один профессор ТОЭ, к примеру, отдельно и безо всякой программы провел для нас курс дополнительных лекций по mathematica и matlab, дабы сразу приучить к использованию серьезных инженерных приложений.

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

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

ВМиК МГУ, первый курс изучает паскаль, на нем учится писать алгоритмы. И в этом нет ничего страшного. Вирт написал интересные книги для начинающих программистов. И лучше паскаля для начала обучения еще ничего не придумали.
НЛО прилетело и опубликовало эту надпись здесь
настоящий программист не холиварит, какой язык лучше и не хвастается, на каком языке он кодит.
Настоящий программер изучает по одному-два языка каждые полгода, а для каждой задачи выбирает нужный язык.
Вообще, не понимаю этого «Ооо, зацените, я написал это на руби!» «а этот проект написан на перле». Кому какое дело на чём написано? Пиписькой надо меряться, если проект действительно кому-то нужен, а средство написания никого не интересует. НИКОГО! Кроме самого написавшего
НЛО прилетело и опубликовало эту надпись здесь
Сомневаюсь, что многие программисты способны качественно выучить пару языков за полгода, разве что очень талантливые. Подобные фразы содержат не меньше пафоса, чем холивары какой язык лучше, которые чаще всего разводят те, что знает хорошо только один.
Ознакомиться с синтаксисом возможно, тем более что многие языки с-подобны.

Что толку, что вы зная с++ пролистаете Java? Да похоже, да ООП. Только в одном множественное наследование, а в другои интерфейсы, в одном указетели, а в другом ну разве, что ссылка на объект. Да вы прочитаете код и поймете его в основном — это значит, что вы язык знаете? Я считаю, что нет.

Есть общие вещи, есть архитектурные различия. Не говоря уже о стандартных библиотеках при выборе языка. Тезис выбирает нужный язык в зависимоти от задачи должен правильно пониматься!!! Если программист хорошо знает несколько языков(платформ) у него это выбор есть. Иначе зачастую нет, хотя он и может знать, что есть более подходящие альтернативы, тут уже надо смотреть стоит ли учить новое и писать на нем или написать на том, что знаешь.
Всегда думал, что программист, это не тот кто в совершенстве владеет каким либо языком, а тот кто способен постоянно учиться и решать поставленные задачи наиболее оптимальным способом.
А что вы понимаете под «решать поставленные задачи наиболее оптимальным способом»?
И как это соотносится с поверхностным знанием многих языков?
Если знание того или иного языка, может существенно сократить время и расходы на решение той или иной задачи, а также последующую поддержку. Почему бы тогда не начать осваивать новый язык? Хоть вы там на другом уже 10 лет программируете. И я также уверен, что нет лучшего способа изучения какого-либо языка, чем написание программ на нем.
Вот тут я с вами согласен. Чтобы знать язык — надо на нем писать. Причем что-то, выходящее за рамки «Hello, World!».
Именно поэтому я и сомневаюсь в возможности «Настоящий программер изучает по одному-два языка каждые полгода».
Разумеется. Про «Настоящий программер изучает по одному-два языка каждые полгода», ну да, конечно загнул человек. Программист долгие годы занимающийся системным программированием на сях, или какими-нибудь контроллерами на асме и всяких сишных диалектах, не менее настоящий, чем все остальные.
«Настоящий программер изучает по одному-два языка каждые полгода»… А работать продолжает на одном :-)
Почитайте Джоэля Спольски, он как раз об этом писал. Для меня он является авторитетом в области программирования, и его мнение насчёт 1-2 языков в полгода я разделяю
«И лучше паскаля для начала обучения еще ничего не придумали.»
Почему-то кроме паскальщиков, так ни кто не считает. Те кто, как я, начинал с Си по моему в большинстве своем ни горят желанием пойти поизучать паскаль и не испытывают никаких проблем.
Да кто говорит, что нельзя начать изучать с чего-то другого.

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

Ладно, закроем тему.
Никто не мешает и дальше разрабатывать нормальные приложения скажем под FreePascal, с использованием GUI и WinAPI, а то и чего похлеще. Просто это направление стало как-то… нетрендово. :)
Не буду утверждать, что современный диалект Object Pascal дотягивается до C++, но многие задачи на нём до сих пор можно решать вполне успешно.
Также как их можно решать еще успешнее другими, более распространенными средствами. К сожалению, разработка, это далеко не весь жизненный цикл программы.
Ну это Вы зря. Я перешел с асма и с++ на Delphi и был только рад этому. Да, есть и минусы, но, имхо, плюсов в Delphi намного больше. После, пытался пользоваться питоном, C# и т.д. Остановился на php, но только потому, что нашел CI. PHP+CI очень напоминают Delphi ;).
А серьезно, мне даже любопытно стало, что же вы такого в делфи нашли?
Быстрота разработки, легкость поддержки и т.д. Для курсовых — разницы нет, для коммерческих проектов — Delphi, имхо, лучшее, на сегодняшний день.

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

P.S.: что интересно, на хабре только за одно слово Delphi сыпятся минусы =). Наблюдаю уже не впервые.
НЛО прилетело и опубликовало эту надпись здесь
Зря вы так. Если заказчик не понимает что можно сделать шустрее, красивее и аккуратнее, то куча уже готовых компонентов и фактор «оно работает» делают свое дело.
Да уж… «Шустрее, красивее и аккуратнее» — зависит от программиста, а не от языка ;). А готовые компоненты (причем свои, а не сторонние, чаще всего) помогают избегать множества проблем.

Пишу и думаю — смысл от моего коммента? Многие сделали вывод о Delphi на основе паскаля или «крутых хакеров из соседнего подъезда»…
Сам пользовался дельфей некоторое время… Так вот интерфейс с системным look&feel (вот есть у меня такая заморочка) проще писать и поддерживать на winapi (кросс-платформенность не в счет). А если забить на эту мелочь, то «заказчик хавает» :)
> проще писать и поддерживать на winapi
WinAPI в принципе ужасен — эти дурацкие неописанные параметры функций, которые «should be NULL» просто мерзки.
А сделать простейшую перегрузку функции — это нельзя было.
Я писал в свое время на wininet курсовик — качалку файлов с докачкой, гуем и прочим на MFC. Следующие курсовики я делал уже только на Qt.
Слава богу, у нас в институте достаточно преподавателей, которые хотя бы не мешают студентам изучать что-то новое и применять в практике.
Ну знаете, во всем есть свои плюсы :) И глупо спорить что какой-либо тулкит даст более «родной» вид, чем API самой среды.

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

P.S. вы не любите WinAPI? да вы просто не умеете его готовить! (с) анекдот :)
Ну да, верно :)
Но фиг знает, я не спец в WinAPI. Мне он сразу не понравился — я и перестал им пользоваться.
> А сделать простейшую перегрузку функции — это нельзя было
в Си нет возможности перегружать функции, если же писать на С++ то для WinAPI есть прекрасная обертка WTL которая избавляет в том числе и от забивания ненужных параметров функций
>А готовые компоненты (причем свои, а не сторонние, чаще всего) помогают избегать множества проблем.

А можно вопрос?

А почему Вы так говорите, как будто это какая-то отличительная черта именно Дельфи? ;)
наверное имеется ввиду удобство их создания, когда к примеру в программе уже имеется контрол и его можно пофикстить мимолетом, не выходя из проекта и тут же увидеть «на лету» изменения.
Ну а в чём особенность-то? Я что-то всё никак в толк не возьму…

Я без каких-то напрягов создал свой контрол на С++ (на основе существующего Qt-контрола), и задействовал его в программе. А потом вообще без каких-либо напрягов перенёс его на Питон — и опять задействовал его.

Причём гуй рисуется в QtDesigner-е из стандартных контролов, а я уже непосредственно в проекте «навешиваю» на него свои изменения — и в конечном результате получаю свой контрол вместо стандартного.

А в последних версиях Qt по-моему это можно делать прямо в самом дизайнере — сразу указывать, что это будет не стандартная кнопка (к примеру), а кастомная из проекта.

По-моему все эти восторги по поводу «уникальности» Дельфей вызваны исключительно незнанием других технологий =\
вы про создание пользовательских виджетов? ну там не совсем так получается. описанный вами способ похож на promotion метод (если я вас правильно понял), но при нем в Qt Designer'е будут не доступны свойства характерные именно для вашего виджета и будет отображать он не своим изображением. Это решается методом плагинов, но по сравнению с возможностями предлагаемыми дельфей это все вроде как «сложнее», а точнее дольше и не «на лету». Так же нет возможностей создания уникальных свойств для редактора, когда можно вызывать хоть целые сложнейшие мастера и т.п. вещи.
Вы высчитываете траектории звезд? :) Производительность обычно не критична, а внешний вид — винда она и есть винда.
Ой не… На внешний вид каждая следующая винда требует поиск новых компонент, которые умеют рисовать себя похоже на новую тему винды :) Да и куча косяков в кастомной прорисовке из VCL тоже меня убивают…

Так было по крайней мере во времена ХР, потом я как-то от дельфи ушел :)
Для корпоративного софта пофигу на внешний вид :).
А насчет скинов, во времена когда юзал Делфи нашел неплохую либу которая легко все кастомизировала. Но какую уже не помню :(
а нужно было всего-то почитать MSDN и включить поддержку тем (themes), никакое обновление VCL не требовалось, за очень редким исключением в виде мелких фиксов ,) Помню в 5 delphi долго сидел, тем не менее интерфейс в XP от этого не страдал.
Ага, только от добавления манифеста приложение падало на старте )
Да и поддержка тем в системных контролах ну никак не поможет кастомной отрисовке кнопок :)
Про падения, если честно не в курсе! оО Вообще, кроме манифеста нужно было еще и парочку API вызвать. А кастомные кнопки они на то и кастомные (TFlatButton я так понимаю, уже не помню точно??), что рисование у них свое, стандартный же TButton становился нормальным «в тему» ,) Как и всякие memo, listbox, treeview, listview, edit и т.п.
TBitBtn там был, клон обычного баттона только с иконкой :) А краишлось оно от какой-то компоненты кривой, но из стандартной поставки. Насчет вызовов — не знаю, апишному приложению манифеста хватает.

Да и вообще — это давно было, лет 6 назад… Сейчас я с итренфейсом сталкиваюсь в основном в миранде, а там царит C да WinAPI :)
плакать, особенно под вистой или win7.

Знакомый Delphi-программер после 10+ лет использования Delphi почему-то начал переписывать свои коммерческие проекты на C#. Это уже о чем-то да и говорит…
Быстрота разработки и легкость поддержки в чем заключаются?
Именно в быстроте и легкости разработки, как ни странно. Можно привести кучу примеров, но смысл? Вы меня не переубедите, а я Вас. Останемся каждый при своем. Комментарий был именно на тему, что Вы утверждаете вещи, о которых не знаете — это плохо.
Разработки чего? Вы что сравниваете язык программирования Delphi с языком программирования C++, или вы сравниваете Delphi IDE с голым C++?
Я сравниваю язык Delphi с другими языками, которые я изучал.
Кстати, IDE, давно уже, называется BDS, а не Delphi ;)
Хорошо, в чем же преимущества у языка Delphi по сравнению с «другими»?
Можно я вам отвечу? Ни в чем. Это такой же язык, как и другие, на котором многим людям вполне комфортно писать программы. Это отличная среда разработки, намного опередившая свое время.

Так за что ее все так не любят-то? Не уверен, но думаю, что многие из «критиков» Delphi сами написали в ней что-то более масштабное, чем Hello World, и судят в основном по отзывам «более продвинутых» товарищей. Не судите, да не судимы будете.

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

Можно написать не одну сотню статей, сравнивая разные языки, что делалось многие годы до, и будет делаться многие годы после. Но зачем? Серебряной пули нет, как нет и лучшего языка.
На версиях ранее BDS я ненавидил Borland Delphi и Borland C++ Builder за отвратительную документацию…

И это было основной проблемой. Остальное меня вполне устраивало. Хотя еще были проблемы с разными версиями виндовсов.

Дальше лаб и курсачей использование Borland Delphi и Borland C++ Builder не ушло для меня.

В BDS появилась нормальная документация, но уже поздно… И вообще неизвестно как будет работать делфи под win7
>На версиях ранее BDS я ненавидил Borland Delphi и Borland C++ Builder за отвратительную документацию…

Зато там была одна из лучших (ИМХО!) справок по WinAPI ;)
>> И вообще неизвестно как будет работать делфи под win7

Delphi 2009 в семерке работает нормально
В BDS нормальную цельную документацию заменили по образу и подобию MSDN кучей обрывочной информации, до которой хрен доберешься без поиска и знания искомого названия. Еще и нагенерили эту документацию так хорошо, что метод в классе есть, документация по классу есть, а описания метода в ней нет.
>Именно в быстроте и легкости разработки, как ни странно.

Вы так говорите, как будто это присуще только Дельфям и ничему больше :)

Лично для меня «быстрота и лёгкость разработки» однозначно ассоциируются с Питоном. Имея за плечами почти десятилетний опыт разработки на С/С++ я начал писать на Питоне вообще без каких-либо напрягов, почитав туториал и используя гугль в некоторых случаях. Вот просто взял и начал :)
На Дельфи, кстати, приходилось писать в Универе, поэтому сравнивать могу.
А для меня «быстрота и лёгкость разработки» ассоциируются с вменяемым ПМом :)
Видимо, Вы не программировали на Delphi. Я имею в виду, нормальные, коммерческие проекты. Кнопочки можно перетаскивать и на PHP, при желании ;)
Ну, после IB, душа действительно начинает петь дифирамбы в честь Delphi =) А когда ваш контрол сравним с серьезной программой (к примеру, сотня тысяч строк кода), вы пишите код и тут же в процессе проектирования «на лету» видите результаты — это действительно очень удобно и значительно экономит время.

А вообще, я вас сейчас наверное сильно удивлю, но писанина разных GUI программок на вроде Skype, QIP и TheBat! уже лет 10 (примерно с 4 дельфи) как не является приоритетной задачей для дельфи, хотя многие дельфисты и не хотят признавать этого. Delphi уже давно не средство быстрой разработки маленьких утилит (хотя и с этим сложно поспорить), а в первую очередь это средство для быстрой разработки высокопроизводительных клиент/серверных приложений для различных баз данных и многозвенных приложений баз данных. Мне не хочется расписывать про все эти OLAP, SOAP, WEBSNAP, BizSnap, DataSnap (Midas), Rave Reports, при желании вы сами обо всем этом и многом другом можете почитать, главное что именно это давно является тем, на чем специализируется Delphi. А это совершенно другой мир и уровень. Именно поэтому Delphi и живет. Я не удивлюсь, если через несколько лет VCL в том виде, в каком ее представляет большинство перестанет развиваться, а Delphi полностью уйдет в русло веб-сервисов и баз данных. Ну и кстати, не нужно забывать об такой славной вещи как Together. Программисты-одиночки наврятли такой штукой пользуются, но это очень мощное CASE-средство. Очень быстрое моделирование бизнес-процессов и компонентов кода, оценка разработки с помошью метрик, возможности проведения аудита, сложнейший рефакторинг, автоматическое документирование и многое другое. Это все, как говорится, в коробочке, чтобы мгновенно можно было посадить сотню программистов и те начали проектировать и писать код (если кто работал в крупных фирмах, то он однозначно знает обо всех проблем развертывания аналогичных систем и их вечной доводки до ума). Этим и славится дельфи, но не в среде студентов конечно же и программистов одиночек.

p.s.
Дабы меня не приняли за предвзятого человека, сразу предупреждаю, пишу не только в дельфи, и не только под виндоус.
Delphi — это отличный компилятор, хотя и довольно корявая VCL.

При разумном (=профессиональном) подходе на Delphi можно писать просто восхитительно работающий софт, который к тому же продаётся за сотни тысяч баксов — это я из своего личного опыта.
Софт, который продаётся за сотни тысяч баксов, можно писать на чём угодно и в чём угодно.
простите, почему не придумали? есть масса удобных, простых и современных языков. Паскаль, а это как правило Турбо Паскаль 7.0, только слегка подпортит зрение и нервы первокурсникам.

МГУ это что, божественное откровение и абсолютный пример? Я могу перечислить несколько кафедр питерского Политеха, где обучение начинают сразу с С++. Моя двоюродная сестра в Вильнюсе вообще начала с языка Ассемблера на курсе архитектуры ЭВМ, хотя лично я слегка удивился такому брутальному подходу к обучению программистов. В массачусетском, главной мировой кузнице технических гениев, главный студенческий язык — scheme.
> Моя двоюродная сестра в Вильнюсе вообще начала с языка Ассемблера на курсе архитектуры ЭВМ
У нас тоже самое. Казанский Государственный Энергетический Университет
К слову, МФТИ, факультет «Молекулярной и биологической физики», первый семестр — Си, второй семестр Ассемблер. На факультете «Инноваций и высоких технологий» оба семестра — Си++ углубленно со всякими паттернами и фреймворками.
А в общем и целом картина такая, кто что знает — то и преподают. Мне на кафедре «Мат. моделирования физических процессов» факультета «Проблем физики и энергетики», по наставлению кафедры пришлось два семака отмучиться на фортране.
да, да у нас тоже на кафедрах некоторых заставляют фортран, наверно из-за того, что на нем в свое время было написано много математических библиотек и их число приумножается по той же причине)
Да, я тоже вижу это для себя единственным более-менее разумным объяснением. Но таким способом они отбили всякий интерес к программированию вообще у всей группы, большинство до этого либо вообще ни чего не знали, либо писали немножко в школе на паскале. В итоге все два семестра народ таскал друг другу флешки с одной и той же криво написанной программой и кое-как сдавал.
Как я рад, что из C можно на фортрановый код смотреть по большей части как на чёрный ящик!
Бесполезно говорить о плохом преподавании программирования на проблемах…
Согласитесь, это не самый продвинутый факультет МФТИ.
Ну начать хотя бы с того, Pascal хорошо учит структурному программированию.
В вузе должны учить конкретным не языкам, а умению думать. Тот, кто умеет думать — разберётся с любым. Где-то читал, что в MIT есть специально разработанный учебный язык, на котором учат.
В нашем веке учить надо не структурному программированию.
Чтобы потом плеваться от множества говноподелок на C#?
Я считаю хороший программист (про Web пока забудем) должен знать и структурное, и низкоуровневое программирование.
«должен знать и структурное, и низкоуровневое программирование»
С этим прекрасно справятся Си с Ассемблером.
Тем что Паскаль не нужен, и ничем иным, кроме как пустой тратой времени, не является. Кроме как в школе, на уроках информатики, мне больше никогда не приходилось с ним сталкиваться. Почему бы тогда было это время не потратить на изучение чего-то более полезного?
давайте тогда астрономию выкинем… заодно и биологию с химией, вед с ними тоже редко сталкиваетесь :) про химию это я о чем-то типа бензола и мартеновского способа выплавки стали а не про воду :)
Вы написали совершеннейшую глупость. Знание химии есть необходимость для химика, также как знание биологии не лишние для биолога, а нужно ли программисту знать Паскаль?
Все верно он написал, паскаль это тоже часть фундаментального образования.
По вашему, все-что не нужно в будущем не надо изучать.
И какое отношение имеет Паскаль к «фундаментальному образованию»? Почему он важнее чем Си? Почему нельзя просто изучать Си и не тратить время на всякие Паскали?
Да вузы разные бывают, к примеру в Стендфорде основы программирования начинаются с Java. А уж на чем потом писать — дело ваше, хотите учите Objective-C, хотите Delphi.
Чуть выше написали про структурированное программирование, а лично мне изучение Паскаля помогло быстро овладеть VB, синтаксис которого очень схож.
Синтаксисы подавляющего большинства императивных языков очень схожи. И подавляющее большинство из них позволяют «структурно программировать». Таки в чём здесь уникальность и фундаментальность паскаля? Я как-то был на лекции Вирта. По-моему, даже он уже забыл про свой паскаль (и забил на него давно).
Как-бы ООП тоже структурное, если вы об этом.
Функциональное вроде в этом топике не совсем уместно по контексту.
>MIT есть специально разработанный учебный язык, на котором учат
раньше это был Scheme, теперь перешли на Python
А я считаю, что учит все таки не язык, а преподаватель. Ибо в свою бытность студентом, повидал столько «кода» на паскале, что и в кошмарах не приснится.

Хотя ситуация с моим вузом была совсем клиническая и видимо все протухло окончательно. Так что, не принимайте слова близко к сердцу :)

Увы, бывают случаи, когда преподаватель действительно знает предмет хуже студента. Ну или очень натурально делает вид.
НЛО прилетело и опубликовало эту надпись здесь
Такие хорошие студенты, такие плохие преподаватели или преподаватели поголовно читают «не свои» курсы?
НЛО прилетело и опубликовало эту надпись здесь
Преподавателю по разным причинам могут дать непрофильный курс, без времени на подготовку и т.п. Возможно на время, заменить коллегу… Если же такое чаще норма, чем исключение, то у меня подозрение, что это плохой вуз. И тогда у меня вопрос, если вы поступили в плохой вуз, зачем жалуетесь?
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Все безвыходные ситуации, в которых я бывал, на самом деле создавал себе я сам заранее)))
Но и эти ситуации — псевдобезвыходные, потому что безвыходных ситуаций не бывает. Это мнение основано на моём безусловно скромном опыте.
Может быть приведёте мне пример? У меня правда не получается представить безвыходную ситуацию.
НЛО прилетело и опубликовало эту надпись здесь
> Если сможешь написать на паскале-значит сможешь и на чем угодно.

Представляю себе убеждённого паскалиста-дельфятника, пишущего ту же систему тестов на Scheme. Который, кстати, используется для обучения в Калтехе, Беркли, Йеле, и до недавних пор использовался в МТИ.
Всё верно. Университет дает основы и некое понимание сути, последующая практика дает недостающие «рюшечки» для решения конкретных задач. Без знания основ — ну можно с тем же успехом научить обезьяну вводить команды в консоли, без понимания что это вобще такое.

У автора обычный юношеский максимализм, с возрастом проходит. Знаем, «плавали», многие этим страдают — как студенты, так и молодые «специалисты», только-только вышедшие из ВУЗов.

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

У языка есть свое очень четкое предназначение, так же как у всяких «хакерских» языков типа BrainFuck'а.
На Пасквиле или на этой штуке труднее написать реальное приложение для заказчика, чем на каких-то промышленных вещах.
> В Университетах дают фундаментальное образование, а не подстраиваются под ваши желания.

а почему «фундаментальное образование» всегда намертво привязано к мелкософту и тыреному коммерческому софту?
Не знаю с чего вы это взяли, бесплатный софт и так бесплатный, а майкрософт и другие компании дают серьездные скидки на их софт для обучения, и покупается все на бюджетные деньги. Не видел тыреного софта я.
Ну а привязка к майкрософту это вообще глупости, писать на шарпах например мы начали только в этом году, до этого был юникс.
странно, в моем ВУЗе в учебной программе фигурирует не только Win, но и Linux. несмотря на то, что он не технический (просто присутствует факультет ИТ).

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

Приходит устраиваться на работу на завод “Электрон” молодой мужчина. Начальник отдела кадров спрашивает:
— А что вы умеете делать?
— Я классный программист.
— Нам такие нужны! Пишите заявление.
— А вы не могли бы за меня написать?
— Почему?
— А я писать не умею, только на клавиатуре набирать.
— До свидания, нам такие не нужны.
Через год в Америке к ювелирному магазину подъезжает “Роллс-Ройс”, из него выходит мужчина с шикарно одетой женщиной. Они заходят в магазин и рассматривают украшения.
— Какое тебе колье купить, дорогая?
— Лучше вот это, за 25 000 долларов.
Мужчина открывает чемоданчик, оттуда высыпается гора денег. Кассир недоуменно спрашивает:
— Почему вы носите с собой столько наличности? Гораздо проще выписать чек.
— Если бы я умел писать, то работал бы сейчас на заводе “Электрон”
Показатель наличия ума, извините если кого задел.
Ученье свет, а не ученье тьма. Наверно не просто так придумали?
А это просто анекдот.
Да не задели, все нормально.
Просто в сознании некоторых давно укоренилась мысль о том, что если в «кармане» есть диплом с вышкой, и, причем, диплом красный — то значит такой человек достаточно умен, талантлив, в общем, прямая дорога к хорошей работе.
А дорога всем остальным автоматически прикрывается.
Вот если человек талантлив, умен, но без ВУ — почему бы его не взять на работу? Так нет же, в соответствии с нормативными документами неположено… И уж очень редко работодатель пойдет в этом случае на уступки…
С другой стороны, есть очень много примеров, где таким людям везет, и они могут прекрасно строить свои карьеры и без диплома.

Чтобы не уходить от темы, вернемся к вашему первоначальному комментарию. Мое мнение — конечно, преподавателя (да и любого старшего человека) нужно уважать, особенно если видишь, что преподаватель идет тебе навстречу, достаточно открыт для контакта и пытается ставить сходу на место. Тут я с вами согласен. Но вот если сам преподаватель начинает ставить себя так, как будто все студенты оболтусы и не стоят уважения лишь потому, что не ходят на пары, закрывая глаза на то, что человек на самом деле умный и делает это не специально — все уважение к такому преподавателю сразу же улетучивается, особенно если он и не шарит по своему предмету.

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

Насчет авторши топика. Немного знаком с ней по жж. Достаточно упорная женщина, желающая, а главно, умеющая добиваться поставленных целей. Но вот именно этот топик меня разочаровал. Не берусь осуждать, но не согласен с тем, что преподавателя стоит нелюбить только за незнание предмета. И пытаться это явно ему демонстрировать.
Незнание преподавателем предмета, который он преподаёт — это не повод его не любить? Потому что он старше, потому что идёт вам навстречу и т.п.? Интересно, как бы вы отнеслись к хирургу, который не умеет обращаться со скальпелем (а во всём прочем — золотой человек) и по этой причине зарезал кой-кого; к пожарнику, который не сумел потушить ваш дом; к водиле, который вас переедет (тьфу, тьфу, тьфу), потому что не умеет водить. Все они милые, симпатичные люди. Только кое в чём чуток некомпетентны.

Откуда это всепрощение к некомпетентности? Такое завуалированное, вроде бы его и нет. Откуда это осуждение тех, кто ненавидит некомпетентность, и при всяком удобном случае показывает на неё пальцем? Ах, это невежливо, пальцем показывать, да ещё старшим по возрасту! :) Уважают не за возраст, а за опыт прожитых лет. Не надо путать косвенный признак и истинную причину. Нет опыта — нет уважения.

С первой же частью, про высшее образование — согласен. Но это личное :)
По-моему вы хотите поспорить))
>>Откуда это осуждение тех, кто ненавидит некомпетентность?
Я не говорил, что осуждаю тех, кто ненавидит некомпетентность) Я про то, что препода можно понять, если он читает проги с листа, но при этом понимающе относится к проявляемой студентами инициативе. Таким преподом может быть какая-нибудь женщина-ассистент на кафедре, для которой данный предмет не основной. Уж не обязательно каждый препод по программированию сам высококлассный программист. А у студента должна быть своя голова на плечах, тем более, что сейчас все больше часов отдают на самообучение, а не просиживание штанов в универах.

>>Уважают не за возраст, а за опыт прожитых лет.
Я это и без вас прекрасно понимаю. Но должна быть элементарная вежливость. Или вы предлагаете крыть матом каждого, кто не будет выполнять своих обязанностей?) А у всех специалистов есть свое начальство, которое и решает, что делать с нерадивыми исполнителями.
Можно понять. А можно и отказаться понимать. И это тоже можно понять :)

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

Да, она немножко грубиянка. Но она — добро с кулаками (ключевое слово — «добро»). Может препод поймёт, что нифига не знает. Может подучится, или уволится. Хотя вряд ли. Все же кругом такие понимающие люди. А грубиянке можно и незачёт поставить, чтобы не выдрючивалась.

P. S. Всё же надеюсь, вы не всегда столь понимающе относитесь к некомпетентности. Из другого вашего коммента: «Если инженер не умеет составлять документацию, считай он не инженер». Вот такое отношение мне больше импонирует. Никаких оправданий. Иногда чёрное надо называть чёрным, а не «чуток сероватым с белым пятнышком» ;) А вежливость и уважение… когда они вредят делу, это по другому называется.
Для справки, Паскаль является прародителем любимого языка американских военных — Ада, из которого впоследствии вырос оракловый PL/SQL — основной язык разработки под Oracle, очень даже живой ;-)

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

Но не это интересно, интересно то, что Оберон стал прародителем Java. Да-да, всем нам известная Java была разработана Sun на основе идей Оберона и после его изучения — синтаксис только взяли Сишный, вместо паскалевого, и кое-чего испортили =)

Так, что старичок Паскаль многому может научить студентов. По крайней мере, он учит порядку в головах, а то студентов начавших обучение с C++ по приходу наработу приходится фактически переучивать программированию — у них мягко говоря каша в голове, которая выливается в невменяемый код.
НЛО прилетело и опубликовало эту надпись здесь
Перед тем, как давать человеку свободу С, ему полезно научиться структурировать свои программы, что паскаль заставляет делать.
Практика показывает, что не заставляет. И программы без отступов и с совершенно идиотской логикой вполне себе успешно пишутся на паскале. Чему же учит паскаль? begin-end? Можно подумать если в Си скобки не закроешь компилятор проглотит. Объявлять все переменные в начале программы, а не там где они нужны? Чему еще?
Продумывать какие и сколько переменных использовать, уметь следить за типами данных.
Я не защищаю паскаль, но вообще-то на нем изучают алгоритмы и основы программирования.

Сам я выучил делфи в девятом классе, и тех пор легко идут любые языки, от плюсов до php и js.
Сейчас изучаю тот же делфи на первом курсе, и на квалификацию преподов не жалуюсь. Мне вообщем-то например не очень важно, на чем мы будем проходить деревья и графы: понял на одном языке — сможешь реализовать на другом.
«какие и сколько переменных использовать, уметь следить за типами данных»
Что-то я не припомню, чтобы в паскале было великое множество типов данных, и кто-то особо следил за их использованием. Обычно объявлялись под завязку причем с названиями «a, b, c, d, e» при этом в самой программе строчные и заглавные буквы были вперемешку. Кто-то писал все в верхнем регистре, кто-то с заглавной, а кто-то все в нижнем, большинство смешивало все это в одной программе, совершенно за этим не следя — еще одна отличительная черта паскаля.

«на нем изучают алгоритмы и основы программирования»
Что можно с успехом делать и на любом другом языке. Я их изучил, когда мне было где-то 13 лет, а родители купили участок с домиком и увезли меня на дачу, на все лето. Там я никого не знал и в общем-то делать было нечего. Был компьютер, на котором я за пол лета переиграл во все игры и прошел их по нескольку раз. А отец был программистом, и на компьютере помимо всего прочего стоял Borland C++ и валялась одноименная книжка. Мучаясь от непробиваемой скуки я ее взял и начал читать, где-то с середины, т.к. мне сразу хотелось написать какое-нибудь дельное приложение. И я написал, и оно даже работало, вполне успешно. А еще несколько позже я понял как, и понял то, что я прочел. Я стал читать эту книжку с начала, потом прочел еще несколько более серьезных книжек. А еще двумя годами позже я перестал играть в компьютерные игры, потому что это было скучно и на них не хватало времени, программировать было гораздо интереснее. А еще позже я пошел в 10-ый класс, где мы начали изучать первый свой язык программирования Pascal и жутко недоумевал от того, зачем он вообще он нужен «только больше текста и циклы неудобные».
>Сам я выучил делфи в девятом классе, и тех пор легко идут любые языки, от плюсов до php и js.

Я в 8-м классе выучил Бейсик, и после этого мне точно так же «легко идут любые языки»: и Паскаль, и Ц, и ассемблер, и плюсы, и Питон, и пхп, и жабаскрипт прочие, к чему бы я ни проявлял интерес. Ну так что теперь, Бейсик рулез неимоверный? :)
Моя спокоен. А одно время под влиянием подобных статей считал что начал изучение программирования не с того :)
>Сам я выучил делфи в девятом классе, и тех пор легко идут любые языки, от плюсов до php и js

Все языки из одной группы, потому легко и идут.
Советую посмотреть, как пойдут LISP, Haskell, Erlang и Prolog.
Я это говорю по своей памяти о паскале :)
Тогда, после школьного маловменяемого бейсика жесткая структура модулей, типизация были удобными. А уже потом, уверенно прогая на паскале, полюбил более свободный синтаксис С. И не уверен, что стоило сразу начинать писать на С.
Некоторое время назад говорили, что программист учившийся на бейсику не способен переучиванию и выходу из состояния оболвания, теперь это с++. В мире что-то определённо поменялось, а я это пропустил :)
НЛО прилетело и опубликовало эту надпись здесь
Я! Я учил Бейсик в 8-м классе! %)

Видимо, я теперь и на асме пишу как на Бейсике… =\
страшно признаться, но первая моя «большая программа» была крестики-нолики в 10 классе, а написана она была на .bat файлах в DOS 4.1

Я теперь совсем потерян для мира, да? ,(
тьфу, в 10 лет, а не 10 классе ) в 10 классе уже и доса-то не видел ))
>Паскаль является прародителем любимого языка американских военных — Ада

Если уж разбираться досконально, то прародителем Ады (и Паскаля, кстати, тоже) был Алгол. Так что всё, что Вы перечислили в Вашем замечательном (без капли иронии) посте — потомки Алгола.

Так что Алгол — рулез неимоверный, срочно всем всё бросать и учить Алгол!!! %)
я говорю об отношении к преподавателю в рассказе. Мне даже и в голову не придет так говорить о менее квалифицированном человеке, который пытается(пусть даже и не может) меня чему-то научить.

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

Короче, отвечаю вне этикета и чувства такта — вы молода и глупа, и думаете, что имея жалкое преимущество в сфере программирования, способны угнетать человека, который: 1. старше вас, 2. не намерен душить вас, 3. вполне возможно(а я и вовсе считаю, что точно) умнее вас в других сферах.
Ваша позиция, и тон «как бы с высока о жалком преподавателе» говорит не более чем о наличии у вас комплексов, которые вы компенсируете поливанием этого человека дерьмом, тихо, за его спиной, улыбаясь себе любимой. Я не буду говорить такие слова как совесть, честь и норма, когда-нибудь самой дойдёт, но с последствиями.

А gui у вас говно — кнопки слишком большие, а между вопросами зазор в два пальца — незачет.
за последнее предложение — простите. А за весь пост — не берите в голову, это я для себя высказался.
Если уж разбирать гуй — то с отступами/лэйаутами там вообще полный швах (оступы слева/справа представлены аж в 3-х разных вариантах), плюс главное меню по-моему делалось вручную (подозреваю, «утопленными» кнопками), ибо таких отступов в меню я ни разу не видел (код не смотрел, возможно ошибаюсь и это просто такая тема виджетов — но тогда это худшая тема, которую я видел).
может и не очень хорошо, что к форматированию диплома у них не придираются.
НЛО прилетело и опубликовало эту надпись здесь
Да, у меня тоже такой комплекс есть — когда вижу уродство какое-нибудь — сразу кричу об этом.
Доктор, что мне делать?
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
>А gui у вас говно — кнопки слишком большие, а между вопросами зазор в два пальца — незачет.

Точно!
Если бы меня так доставали, то я б на месте препода прикололся и поставил бы тройбан за UI.
А код бы вообще не читал :)
И кстати :)

MainWindow::MainWindow(QWidget *parent)
: QWidget(parent), quizXML(new QDomDocument), quiz(0)
{

}

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

MainWindow::~MainWindow() {
delete timerSeconds;
delete timerOverall;
delete quiz;
delete quizXML;
}

Если это кросс–платформенное приложение, вы уверены, что все реализации C++ корректно выполняют delete с null аргументом?

try
{

}
catch (char const* errName) {
QMessageBox::warning(0, «Error», errName);
}

Вы не вызываете throw в catch, не бросаете exception дальше? Объяснять почему это плохо?

QFile *quizFile = new QFile(quizFileName);
try {
quizFile->…

}
С какой целью вы вынесли выделение памяти за try, если не используете его за пределами try scope? Вы не проверяете quizFile на null перед его использованием, вы уверены, что память выделится в 100% случаев? Вы знаете, что хацкеры будут потирать ручонки, когда ваша программа упадет по этой причине?

if(ui.userName->text()=="") throw «Вы должны ввести своё имя!»;

Вы знаете на сколько доргая операция вызова и обрботки exception и не рекомендуется их использовать в логике программы, только для (surprise!) обработки исключительных ситуаций?

Question *quest;
quest = new Question(numAns, &qName);

Странный стиль. Вам платят за количество строк? Почему бы не написать так?
Question *quest = new Question(numAns, &qName);

resultsFile->open(QFile::WriteOnly | QFile::Truncate);

resultsFile->close();

Вы не включили закрытие файла в catch блок, вы оставляете файл открытым при возникновении исключительной ситуации?

(дальше лень смотреть)

Идите, девушка. Тройбан с натяжкой!
И скажите спасибо, что на осень не оставил :)
P.S. Про множественное наследование откат – присмотрелся, это инициализация параметров :)
про delete null тоже присмотритесь, вот пост обширный: alenacpp.blogspot.com/2007/01/delete-p.html

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

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

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

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

В данном случае оно просто не нужно, хватило бы простого messagebox-а или любого другого сообщения юзеру.
Ну… В .net фреймворке почти вся валидация аргументов на эксепшинах построена. И я себе вполне могу представить такой код

try
{
user = new User(txtName.Text, txtPassword.Text);
//…
}
catch (ArgumentException)
{
// bad user input
}
catch (Exception)
{
// something gone wrong
}

Это переносит валидацию корректности имени (например надо только латиницу) на уровень движка аккаунтов, оставляя отображение на уровне интерфейса.
>Это переносит валидацию корректности имени (например надо только латиницу) на уровень движка аккаунтов, оставляя отображение на уровне интерфейса.

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

QValidator validator("[a-zA-Z]+");
if ( validator.validate(inputString) ) {
//…
}

;)

Тот же самый валидатор может быть установлен, например, для QLineEdit, QComboBox, чтобы изначально исключить возможность неверного ввода.
Сделать то по-разному можно, и не в тулките дело… Вопрос какое дело интерфейсному коду к требованиям движка юзераккаунтов? ;)
Ну ОК, допустим, никакого дела. Значит не назначаем контролам валидатора, а проверяем ввод именно в движке. Теми же двумя строками.
И спор сейчас пойдет на тему что лучше: try/catch с исключением или if/else с функцией-валидатором :)
Лично я принципиальной разницы в данной ситуации не вижу — главное не смешивать модель с представлением, о чем и писал изначально :)
>И спор сейчас пойдет на тему что лучше: try/catch с исключением или if/else с функцией-валидатором :)

А он с этого и начался (см. мой первый пост в этой ветке) ;)
Я о том и говорил, что исключение тут — явно стрельба из пушки по воробьям.
Тем не менее это работает и много где используется. И как по мне, выглядит структурированее вот такого кода:

if (!User::ValidateInput(...))
{
// bad input
return;
}

user = new User(...);
//…

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

P.S. никакого отношения к коду из топика это уже не имеет, просто философия способов организации кода :)
>Тем не менее это работает и много где используется.

Я Вас умоляю…
Аргумент «это работает» для меня перестал что-либо значить после того, как я увидел копи-пэйст размером в 1.5 тысячи строк в коде прошивки одного IP-телефона, и на мой недоумённый вопрос «э-э-э… м-м-м… а-а-а… КАКОГО ХРЕНА????» ответили как раз этой фразой %)

>И как по мне, выглядит структурированее вот такого кода

Как по мне — наоборот. В случае if-а достаточно беглого взгляда, чтобы определить в каком месте что сломается и в каком месте это обработается. В случае исключения — не факт.
Ну я в принципе тоже много ужасов повидал :)
Ладно, проехали, всему свое место на самом деле :)
Ага, только тут тоже используется SEH. Загоните такой код в цикл и посмотрите в PerfMon на результат — производительность не сможет порадовать ,(
А вы себе можете представить пользователя, который заметит тормоза единоразового вызова этого обработчика? Да создание мессаджбокса займет больше времени, чем обработка исключения :)

А Qt/WinForms/VCL/<ваш-любимый-тулкит> с этой точки зрения вообще насмерть убивает производительность, создавая лишнюю прослойку над WinAPI…

Я, конечно, люблю поковыряться в низкоуровневой оптимизации, но только когда это большие массивы данных и большое количество итераций, а тут… :)
Не спорю, конечно вы правы в данном случае, но приходилось видеть проекты, рефакторинг кода в которых (такие вот не обязательные try/catch, перенос инициализации переменных в правильные места и т.п.) давал довольно серьезный прирост производительности для всего приложения. Поэтому, на мой взгляд, об этом лучше не забывать и изначально стараться не писать такой код, если можно написать иначе. Что-то вроде правил хорошего тона )
НЛО прилетело и опубликовало эту надпись здесь
Ад какой-то, столько мелочей, точно под Qt не буду программировать.
Не согласен на счет эксепшнов.
Какими бы не были они дорогими, в данном случае эти задержки не станут критичными.

Собственно, похожий пример обработки ошибок можно найти у Страуструпа. Хотя, конечно, не всегда это самый красивый подход.
то что написали молодец. Уважаю. Хочу показать вам еще несколько недостатков вашей программы ( и то как ее можно улучшить ).

класс Answer
1. передача параметра по указателю — так как вам на самом деле нужна простая копия — проще передавать по констатной ссылке
Answer(const QString& s)

Далее. Внутри класс QString — умный указатель. Это значит что расходы на копирование объектов малы. Так-что в принципе можно передавать его по значению.

Вы создали три конструктора, когда хватило бы одного.
Answer(const QString& a="", bool c=false);
Answer::Answer(const QString& a, bool c)
:correct©, text(a){}

методы isCorrect() и getText() не меняют состояние объекта а значит могут быть сделаны константными
bool isCorrect() const;

так как поля correct и text после конструктора нигде не меняются — их тоже можно объявить константыми в объявлении класса: const boo correct;

в целом это все недостаточное знание языка, что надеюсь у вас ненадолго =)
Хоть один нормальный комментарий. Человек постарался поддержать и по возможности указать на недочеты, а не тыкать автора в «грязь лицом».
ну, собственно, автору ответили в его же духе.

Я сам в похожей ситуации был, когда в 2002-м писал преподу приложения на php, который тогда для вузов был экзотикой, но наоборот старался максимально корректно представить преподу решение, объяснить всё.
>Если это кросс–платформенное приложение, вы уверены, что все реализации C++ корректно выполняют delete с null аргументом?
Если реализации соответствуют стандарту — то да. Если не соответствуют, то сложно вообще говорить о хоть чём-нибудь.
Но вообще, за неиспользование RAII надо линейкой по пальцам. Вылетит исключение и всё, утечки.
>Вы не проверяете quizFile на null перед его использованием, вы уверены, что память выделится в 100% случаев?
Опять же, если реализации соответствуют стандарту, то память либо выделится, либо вылетит std::bad_alloc
Вы не правы, потому, что если рассуждать в той же резкой манере, то: ели человек учит чему-то, то он обязан быть на голову выше своих учеников, как минимум в том, чему он учит. А уж преподаватель, который не желает учится новым навыкам и при этом продолжает учить других людей просто странное(и к сожалению часто встречающиеся) явление. Но мир не идеален, и в нем есть хреновые преподаватели(как и люди других профессий), и я могу относится к ним(как и ко всем другим) как мне заблагорассудиться(вы кстати можете считать, что я «стал говном» после этого, эт ваше личное дело). Кстати, совсем по другому я бы стал относиться к другу или знакомому(подчиненному, кому угодно, но, пожалуй, не к преподавателю, точнее не ко всем преподавателям) ненавязчиво пытающимся чему-то меня обучить.

Тут стандартная хрень про молодость…

Блин ну и понесло меня, извините. =)
Лично я был бы не против если бы преподаватель на первом занятии честно бы сказал, что мол этот предмет я вынужден был взять, хотя знаю его не больше вас. Давайте, мол, разбираться вместе. И устраивать лекции в виде семинаров, а семинары в виде лекций. Имхо, такой подход дал бы в тыщу раз больше объективной пользы нежели традиционный.

К сожалению мой опыт свидетельствует об обратном. Чем меньше препод знает — тем больше старается изобразить из себя эдакого гения от науки. И слышать не хочет никаких комментариев в свой адрес, а тем более подобных стремлений людей.
А на работе считается геройством обмануть работодателя. Люди, выросшие на башорге…
Интерфейс приложения — хуже некуда. Типографика отсутствует напрочь. Грамматики в тексте курсовой нет… Вобщем — полный ппц (сорри, долго подбирал последнее слово, но только это очень точно описывает то, что я увидел)!
Честно говоря выпендриваться то особо тут нечем. Уровень сложности «курсовой», таков, что с ней при желании может справиться увлеченный программированием школьник.

Ни сложнейшей математики, ни каких-то «ноу-хау» не увидел.
я знаю, что ничего сложного там нет. Но это не главное. Выше правильно сказали — ХОЛИВОР и ПАФОС :) Это я так тонко троллю преподавателей :)
А в чем смысл? Вы избрали самый дурацкий способ поднятия своей самооценки.
неа, САМЫЙ дурацкий способ — это «политические акции» всяких молодёжных объединений. А я просто не люблю образовательный официоз — и в этом мне смысла хватает.
Ну это не женская, такая же бывает и мужская :)
Я как раз тоже считаю, что «студентка» зарывается… А преподов почему-то никому не жаль — им платят поменьше, чем нам с вами, да и студентики попадаются желающие разве что купить диплом, а не научиться чему-то. А тут еще и в грязь пытаются затолкать. Не понимаю я людей… Наверно все от комплексов, наверно где-то в детском возрасте недооценили…
Вообще не понял причем тут «политические акции»? Если вы все это не любите, непонятно зачем вообще там учитесь? Непонятно, что и кому хотите всем этим доказать?
НЛО прилетело и опубликовало эту надпись здесь
А зачем тогда учишься, если не любишь официоза? Раз ты давно и, вроде как, успешно работаешь без диплома, зачем себя мучать?
Потроллили мат.моделированием каким-нибудь что ле :-)
>В курсаче, кроме вышеперечисленного, содержится: камень в огород мелкософта, прославление опенсорса и прочие сладкие для брата-красноглазика-темы

ну и что?
в своем курсаче вы можете написать все что угодно
но для пользы дела мне кажется было бы лучше показать плюсы open source движения
чем пытаться уронить microsoft в грязь, даже если и получиться — в этом не будит ни какого смысла.
За такое оформление ПЗ у нас бы поставили троечку. А именно:
— разный шрифт на титульном;
— нумерация титульного (!);
— номер страницы не там, где положено;
— нет выравнивания по ширине;
— рисунки не подписаны;
— неверно оформлен библиографический список.
Это только то, что я углядел мельком. А преподаватели ещё кучу всего найдут.
НЛО прилетело и опубликовало эту надпись здесь
Вот уж с чем-чем — а с оформлением по стандартам никогда проблем не было. Подключил нужный стиль в TeX-е — и все дела ;)
В итоге диплом получился одним из самых качественно оформленных, при том что непосредственно на оформление я затратил в десятки раз меньше времени чем те, кто делал это в Ворде.
Эт точно.

Лично я для оформления диплома использовал Textile (простой язык разметки типа Markdown, для того, чтобы пистаь HTML без тегов), который какаим то извратным скриптом конвертировал в HTML, который загружал в OpenOffice, (просто ворда не было под рукой), прописывал стили, а оттуда — в doc и pdf

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

На подбор шрифта, отступов и заголовков ушло больше если не времени, то как миниммум сил :)
Имхо пользоваться визивигом неудобно

Вполне удобно, если использовать чётко заданный набор стилей для всех элементов. Мне для этого MS Word'а за глаза хватает. :)
Смотря для чего.

К примеру: есть у меня некоторый набор статей, который я в своё время писал для различных журналов. Соответственно, в каждом журнале свой стиль (иногда они частично совпадают, но лишь иногда и лишь частично). В каждой статье своя нумерация рисунков/таблиц/формул и своя нумерация использованных источников. А теперь мне надо из всего этого многообразия скомпоновать некую итоговую статью. В которой 2-3 десятка формул, пара десятков рисунков да десяток таблиц. И свой заковыристый стиль. И при этом нужно сохранить ссылки на все использованные источники. Какова последовательность действий пользователя Ворда и какова последовательность моих действий при использовании TeX? Последовательность действий пользователя Ворда: хвататься за голову и так с чувством «ой бля-я-я-я-я.....». Последовательность моих действий: копи-пэйст нужных кусков и указание нужного стиля в заголовке. И всё. Нумерация формул/таблиц/рисунков, нумерация/перенумерация списка литературы — всё это делается автоматически :)
Вы не поверите, но «Нумерация формул/таблиц/рисунков, нумерация/перенумерация списка литературы — всё это делается автоматически» в Word тоже может делаться автоматически :)
И при копи-пэйсте куска со ссылкой на какой-то пункт литературы номер этого пункта тоже поставится автоматически (и все следующие перенумеруются)? А сколько телодвижений для всего этого потребуется? В ТеХе я Вам могу сказать заранее: нисколько. Вставили кусок текста — и всё, точно знаем, что нумерация будет правильная.
А это зависит от того сколько шаблонов использовалось и сколько авторов работали над этими документами. Если правильно использовать все его возможности, то — да, все будет автоматически :)

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

Просто поковыряйтесь в Word'e будете приятно удивлены. Он не уступает TeX'у в функциональности. А возможно и превосходит :)
>А это зависит от того сколько шаблонов использовалось и сколько авторов работали над этими документами. Если правильно использовать все его возможности, то — да, все будет автоматически :)

Вот именно, что очень много всяких «зависит от» и «если». Много усложнений простых вещей.

Я в своё время достаточно ковырялся с Вордом, начиная от 97-го и заканчивая 2003-м, и не понаслышке знаю, какие пассы порой приходится выделывать. А когда задумываешься «а откроется ли это у преподавателя (или и того хуже — у издателя) именно так, как мне надо» — становится очень страшно.

Поэтому в своё время я, превозмогая себя, пересел на LaTeX (Вы бы видели, как я сопротивлялся....) — но уже на второй статье я проклинал себя за то, что не сделал этого раньше. Причём даже не от каких-то вещей типа нумерации/перенумерации объектов и ссылок на них в тексте (этот восторг пришёл позже), а даже от банальнейших вещей, типа набора формул. Особенно когда надо набрать пару страниц вот такого, да не один раз: img410.imageshack.us/img410/9003/disspdf.png

>Просто поковыряйтесь в Word'e будете приятно удивлены. Он не уступает TeX'у в функциональности. А возможно и превосходит :)

Просто поковыряйтесь в LaTeX-е ;)

Я сам раньше думал так же, как и Вы, и тоже пытался убедить собеседника, что «он не уступает TeX'у в функциональности. А возможно и превосходит» ;)

Ладно, устраивать холивар «Word VS LaTeX» в мои планы совершенно не входило. Давайте просто закроем тему за бесперспективностью: Вы меня не переубедите 100% (потому что я там уже был и хлебнул по самое не балуйся :)), а я Вас и переубеждать-то не хочу на самом деле. Пользуйтесь тем, что Вам нравится — в конце концов это Ваши время, деньги и нервы, а не мои.
В Ворде есть диалог экспорта стилей. Можно сохранять шаблоны с набором заданных стилей, можно просто брать из одного дока и копировать в другой. Есть отличная система по разбиению дока на разделы, счетчики формул, рисунков и прочего, с возможностью автонумерации всего этого через вставку полей. Ворд как инструмент составления не очень емких (несколько сотен страниц) более чем удобен, если знать все нюансы. Вы просто не разбирались с матчастью.
Ну естественно, кому как не Вам знать, разбирался я с матчастью или нет… =\

Я лишь сделал для себя выбор: простая и понятная система ТеХ для меня оказалась удобнее, чем «диалог экспорта стилей» (хорошо хоть один диалог, а не целый визард...), «система по разбиению на разделы» (надо же, целая система!), «счётчики формул, рисунков и прочего» (вот я бы ещё голову не грел разными счётчиками), «мастер формул» (кошмар начинается сразу же за формулой чуть сложнее бинома Ньютона) и так далее.

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

А вообще смешно читать целый десяток комментов, «ворд вс. латекс»
Все равно что сравнивать автомат с пистолетом))))

P.S.
>>(надо же, целая система!)
ну это не термины, и текст для комментария я не из учебника брал))

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

P.P.S.
Смешно и грустно.
Смешно и грустно — это когда человек видит другого человека первый раз в жизни и при этом делает заявления «Вы не разобрались в том-то и том-то», не зная по сути ни-че-го о том, о ком он говорит.

А факты я приводил выше по тексту, и безо всяких эмоций (собственно, с них и началось моё участие в этой ветке, но Вы этого почему-то не заметили): я на оформление своего диплома потратил в десятки раз меньше времени чем те, кто делал это в Ворде, а результат получился в разы лучше (мой диплом был особо отмечен комиссией за оформление).
А уже потом, после этих фактов, набежали товарищи минусующие и рассказали мне, что я, оказывается, не разобрался в замечательном и интуитивно-понятном Ворде, который на самом деле может освоить каждая домохозяйка (это аргументы из другого холивара на ту же тему) %) И даже в карму трижды плюнули. Видимо, действительно хорошо задел %)
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Зато все аккуратно, ровно и красиво. А херово оформленный текст, пускай и с очень хорошим наполнением, очень трудно читать.
НЛО прилетело и опубликовало эту надпись здесь
Вы себе не представляете, как требовательны «ихние» компании к оформлениям техническиго дизайна и прочей документации ) По крайней мере те, с которыми я работал.

Написать нормальный проект без предварительного обдумывания невозможно. Документация — один из способов коллективного обдумывания проекта + потом по документу легче координиировать действия команды. Отдай такое кому-то левому — год разгребать будешь.
НЛО прилетело и опубликовало эту надпись здесь
Хм… Ну я особой разницы между требованиями из универа и dot-файлом нашей документации не заметил.
Разбираться будут, если очень припрет. Чаще всего просто плюнут, и будут разбираться в более-менее оформленной работе.
Вы всерьёз считаете дефолтные стили LaTeX «херовым оформлением»?
А при чем тут LaTeX? Я, к стыду своему, никогда им не пользовался, и не могу сказать, насколько они херовые/звиздатые. Если они соответствуют ЕСКД — то все Ок. Если нет — то может быть и Ок, может и не Ок. С учетом популярности системы и ее опенсорсности — думаю, что все в порядке (хотя, опять же сам не видел)
А к слову, знаете, почему инженеры не могут работать на западе так же, как западные инженеры? А потому что никому нафиг не нужен человек, который не может облечь свои гениальные мысли в аккуратную, корректную, общепринятую форму. И если в России это ГОСТ, то на западе — фирменный code style, documenting style. Незачёт.
НЛО прилетело и опубликовало эту надпись здесь
Простите, но вы несете чушь. ГОСТ — это множество конкретных правил, применяемых в конкретных случаях. Если быть до конца точным, то мы сейчас говорим о ЕСКД, которая является подмножеством ГОСТ, и в которой есть множество стандартов, которые применяются в разных ситуациях. А поскольку это громадное количество документов, то среди них попадаются и откровенно дурацкие, и вполне себе новые. Но говорить об этом интегрально не очень правильно.
НЛО прилетело и опубликовало эту надпись здесь
Бред))
Если инженер не умеет составлять документацию, считай он не инженер. Сегодня будущий инженер не оформит по ГОСТу курсовую работу, завтра диплом, а послезавтра не сможет составить реальную документацию для своего продукта. А без документации с его продуктом работать будет нельзя.

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

>>К слову, знаете, почему у нас «утечка мозгов» происходит? Инженеров задалбывает оформлять дебильные конструкторские документации по ГОСТ`у.

Разработайте стандарты для оформления конструкторской документации, которое сделает ее недебильной.
НЛО прилетело и опубликовало эту надпись здесь
если поставят тройку — будет еще одна забавная статья как у нас система образования гнобит опен-сорс
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Кнопки «завершить» и «прекратить» отличный пример того как нельзя делать интерфейсы.
Если честно я бы смог «разнести» курсовую как преподаватель из-за вот этого:
>> А вот так у меня выглядит главная форма приложения:

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

А написать — правильно подмечено можно хоть на чем.

P.S. «А вы, дорогие читатели, когда-нибудь утирали нос нашей системе IT-образования вообще»
посмотрите у меня в профиле и, если будет желание, можете приложить ваши умения в нужное русло «утирания носа» :)
НЛО прилетело и опубликовало эту надпись здесь
я потестил
во-первых часики надо поярче сделать они сливаются с фоном и их почти не видно
во-вторых при запуске бинарника в kde4 из dolphin в конце теста когда программа показывает результат после нажатия ok она вылетает и не сохраняет резутаты в файл, а вот если запускать из консоли то результат нормально сохраняется. какой то тут баг.
в-третьих то что данные сохраняются в xml это конечно хорошо, но xml все таки не человекочитаемый формат, значит программе нужна функция вывода результатов в отдельном окне. или экспорт в txt или вывод их на печать. Ну для составления тестов тоже нужно приложение (не руками же их в xml набивать, но это уже выходит за рамки проекта)
в-червертых тестируемый может легко изменить свои результаты просто поправив файл. возможные выходы — шифрование файла с результатами или возможность сохрания его в сетевую папку в которую у студента нет доступа а у программы доступ есть (вообще настройка места размещения файла с результатом в любом случае необходима).
надеюсь это поможет в сдаче дипломного проекта:)
Небольшая поправочка («Пингвин мне друг, но истина дороже» ;)): МакОСь не просто «вариация на тему Юникс», а является сертифицированной Юникс-системой. Линукс, кстати, не является ;)
НЛО прилетело и опубликовало эту надпись здесь
А при чём тут это? Я говорил о терминах (которым в курсовой работе желательно быть точными).
НЛО прилетело и опубликовало эту надпись здесь
Для домашней машины может быть…
Увы не на все рабочие места можно поставить систему не имеющую никаких «бумажек»…
НЛО прилетело и опубликовало эту надпись здесь
Так же как и водительские права делают вас первоклассным водителем :))
А диплом о высшем образовании — высококвалифицированным специалистом по профессии :). И почему неприязнь именно к микрософтовским сертификатам? Cisco тоже сертифицирует, и Zyxel, и даже по некоторым OpenSource продуктам можно получить сертификат — они наверное делают получивших более высококвалифицированными специалистами? :)
НЛО прилетело и опубликовало эту надпись здесь
А у меня 2 курсача, бакалаврский реферат и дипломный проект на PHP. И что с этого?
Я конечно преисполнен уважения ко всем программистам, но позвольте — кто вас такому слогу учил-то? Такое чувство, как будто вы «выпендриваться» решили везде. Даже в своем профильном сообществе. Мне такая позиция непонятна. «Убить пафосом преподов» — да им ваш пафос и прочие телодвижения, мягко говоря, до пятой точки. ВЫ ради пафоса и признания в универе образование получаете? Мне вас жаль, если это так.
Абсолютно согласен. Самому приходиться принимать задачи у студентов. Все, кто выпендриваются, получают дополнительные задания повышенной сложности, и сдавать будут на том, на чем удобно мне. Их (студентов) человек 40-50, что бы просто принять и все проверить куча времени уходит, а если еще каждого выпендривающегося уламывать, так вообще домой за светло не вернешься. Нормальные амбиции не так должны проявляться.
Пусть препод и читает с листочка, зато он справился со своей задачей — пробудил в вас желание чего-то делать, пусть даже на таком низком уровне (в плане мотивации).

Мир лучше не сделаешь, утирая системе образования нос (хотя ничего толком такими методами вам не удастся, кроме как потешить самолюбие)
Ээх, а меня преподы недопонимали, когда все студенты писали на Delphi (обо продвинутые на СИ), а я на JS+php =)
Извиняюсь за свой вопрос, но все же: «А у Вас борода есть?»
припоминаю себя в студенческие годы… такое же отношения к преподам — «они все не шарят ни в чем кроме своего паскаля, а я вот уже субд и на MFC и на PHP написал… надо их на место поставить!»

сейчас жалею, скромнее надо быть
Советую показать текст перед защитой.
Как вам не стыдно издеваться над преподавателями. Мне их даже немного жалко. Вы 1 раз изучаете напрмиер паскаль, им каждый год приходится и они ничего не могут сделать.
Мне более приятно указывать на консерватизм преподавателей (не всех) с достоинством и уважением, так больше отдача.
А в чем новизна то? Где инновации? Тестовых систем сейчас пресс, на любой вкус. У нас бы просто не засчитали и все. Какая разница на чем написано хоть QT, хоть perl конечному пользователю это все фиолетово? Насколько мне известно есть стандартные форматы тестовых данных, какие из них ВЫ использовали? Есть 20+ видов тестовых вопросов (открытые, зарытые; один вариант, несколько; сопоставление) сколько из них реализовано у васПоскольку конечному пользователю совершенно перпендикулярно, какие технологие используются в приложении.
Дык не инновации главное для автора, судя по тексту — понтануться важнее…
… есть международные стандарты представления учебных курсов и тестов в т.ч. — SCORM, AICC, IMS — какой-нибудь из них реализуется вашей программой или вы придумали очередной несовместимый формат, хоть и в xml'е?
Удивительно в тему (заносчивости, отказа от «грязной» работы, построения искусственных стен между собой и мейнстрим-программистами) пришелся посмотренный вчера доклад с RailsConf: What Killed Smalltalk Could Kill Ruby, Too. Вообще, очень хорошее выступление, начинается только немного медленно, но зато дальше…
По поводу тестов — имхо лучше делать на основе веб-технологий (то есть php :) Вот например, что слепили в одном из универов Северо-Запада, чтобы мучать студентов: iq.karelia.ru/ (набигаем! там есть пузомерка)

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

И из топика непонтяно, чем же хороши открытые продукты (кроме цены). Например МС Ворд, от версии XP по многим характеристикам, включая удобство пользования, превосходит предлагаемый ему в замену OOWriter.

p.s. Паскаль сам не люблю хотя бы за то что надо писать begin/end вместо скобок. Чтоб у его авторов руки отвалились (шутка).
Зато четко вписывается в подсознание, что блоки надо открывать и закрывать))
да, это было для меня шоком, когда на питоне оказалось блоки выделяются отступами)))
а для меня всякий раз шок, когда одногруппники подзывают посмотреть программу мол «почему не работает?», а там 300 строк кода записанных совершенно без каких-либо отступов. Либо отступы сделаны случайным образом, по лишь НЛО известной логике, словно автор в процессе написания просто время от времени задевал таб или пробел, в разные места ставил курсор или же копировал кусочки кода из разных мест. И им совершенно бесполезно объяснять зачем отступы нужны, они все равно их не будут делать «ведь и так работает».
НЛО прилетело и опубликовало эту надпись здесь
Да не вырастит из подавляющего большинства кодеров вообще. Они задают вопросы, типа «Но ведь экран компьютера всего 1024 точки, ка же мне на нем построить график от 1 до 5, ведь он будет занимать всего 5 точек, а это очень мелко!» и пишут конструкции из 50 if-ов, вместо того, чтобы заменить это каким-нибудь тривиальным циклом или алгоритмом. А чтобы проверить введенная буква заглавная или строчная. Они создают два масива в которые долго и нудно вбивают в один буквы заглавные, а в другой буквы строчные. А затем пишут два цикла, и в каждом перебирают соответствующий массив и сравнивают с введенным символом. Это я не выдумываю, я все это видел! Так еще могу 10 сногсшибательных глупостей вспомнить…
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Будьте менее категоричны и терпимее к мнению собеседников.
В школьные годы, программируя на С мы любили копаться в исходниках — такой у нас метод самообразования был. Перед тем, как глянуть исходник — мы его запускали, чтобы посмотреть.

В общих папках в компьютерном классе наткнулись на программку, которая примерно 2-3 минуты рисовала кружочки в разных местах экрана. Ну так, забавненько, не более того. Когда мы открыли исходник…

Правильно. там не было ни одного цикла и ни одного рандома.
Очевидно код рисования кружочков продублированный сотню раз.
Частая проблема, но вспомяная себя, когда еще методом тыка изучал VB6 и то форматировал код.
А я говорю, что-нибудь типа: «А тыкж тут использовал QBitmap, а я в них не разбираюсь...»
Ну Питон мне далек :) а вот YAML тоже использует отступы. И знаете что? — это в данном случае куда как удобнее :) А правильность отступов все равно поддерживает текстовый редактор.
Скобки(не важно какие) лучше ассациируются с блоками, еще в паскале не совсем адекватный оператор присвоения.
Как раз для человека, отдаленного от программирования, := более естесственен.
мне он не был естественным в школе, путался. а знак := встретил только на вышке в универе.
«Скобки(не важно какие) лучше ассациируются с блоками»
Отступы вроде и так делают все понятным.
"=" — в математике это операция сравнения, и использование ее в паскале в той же роли очень даже логично и вполне адекватно.
Пафос, понт, толка ноль, до конца дочитать не хватило терпения. Текст проги не читал, внешеий вид ужас. Разные задачи решают на разных языках, конечному юзеру срать на чем это написано и как главное что бы работало. Препод и одногруппники через неделю забудут про ваш понт.
НЛО прилетело и опубликовало эту надпись здесь
Ну что-то я не вижу на хабре остальных «программистов», которые пишут эти самые убогенькие проги на паскале.
Этот понт может даже и не заметят.

«Разные задачи решают на разных языках»
Как этот тезис применим к двум взаимозаменяемым (но не равноценным) алгоритмическим языкам паскаль и с\с++?

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

У нас в университете обучение программированию тоже начиналось с паскаля. Потос с\с++. Так вот это привело к тому, что подавляющее большинство воспринимало с\с++ как «второй язык», а не паскаль как язык для обучения. Добавьте к этому методички под паскаль и делфи. Это не современно и жаль, что где-то такое еще остается.

Девушка — молодец. Стремление узнать что-то, что тебе интересно похвально. Особенно когда знаешь, что при этом помощи от преподавателя не дождешься. Единсвенное, что глупо винить преподавателей, что они чего-то не знают…
Про задачи я в общем написал.
Что с того что срать юзеру? Да то что курсовые принимают с точки зрения пользователя, работает отлично не работает значит плохо.
На счет последнего предложения, согласен полностью, все из-за того что в большинстве случаев преподам по 60 лет переучивались они в 50 лет из математиков, попробуйте свою маму научить программировать и потом ругайте преподов, но они учат(!) основам. А молодняк, которые действительно знают, научить мало чему могут.
Прочитал все посты, было очень интересно.
Если по делу, то очень прекрасно, что Вы интересуетесь такими альтернативными вещами. Я вот честно говоря ещё ни одной девушки-программиста толком незнаю, по-крайней мере в друзьях у меня таких не числится.
Но преподов надо уважать, имхо. И не стоит быть так в себе увереной =) А вдруг завалит? Например из-за корявой главной формы…
Понтов–то сколько, просто ужОс, вот только на фига – непонятно. Препод, наверное, нравится, поразить его хотите :)
Ему же по большому счету на вас пофиг, у него таких «гениев» сотни.
Тоже делал курсач на python+postgresql, хотя предпологался foxpro. Особо это не афишировал.
Даже если препод не разбирается в современных средствах разработки, нужно стараться воспронимать те теоретические знания которые не устаревают.
Хотя проблема нехватки (скорее практического отсутствия) преподов которые могут проводить практические курсы с применением современных технологий остаётся.
> в 11 классе школы написала схожую софтинку не на турбопаскале, как все нормальные ученики, а на Перле. :))

Я Вас уже обожаю :)
Я дипломку на баше делал в терем)) Учителя в этом не рубят и мне за довольно простенький скрипт поставили отлично))))
НЛО прилетело и опубликовало эту надпись здесь
Система резервного копирования по крону вызывающаяся
НЛО прилетело и опубликовало эту надпись здесь
Ну и отлично же, что вы решили проблему простыми средствами :-)
Ну почему простыми?) для начинающего линуксоида и никакого программера проблема довольно сложная стояла)) но можно считать что это было начало моего скриптонаписательства
Очаровательно. Однако меньше пафоса и прочих чувств — это вредит восприятию научной работы. И да, обращайте внимания на грамматику: «и не такого уж большом количестве» сильно режет глаза, в «Чем дальше — тем больше» лучше использовать запятую вместо тире, а в «И я — не исключение» вообще тире ст́оит убрать.
Странно, а в форме редактирования ударение стояло над буквой «о»…
Я подумал это грязь и пытался пальцем стереть с монитора)
НЛО прилетело и опубликовало эту надпись здесь
Как мне объясняли на хабре, это баг со старой версией шрифта Verdana.
не забывайте что в университете вы учитесь не одна, и если у вас все пошло в программировании на ура, то есть однокурсники, которым нужно уделять больше внимания на основы. pascal я тоже не люблю, но для изучения его достаточно.

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

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

про вдалбивания предмета — работа у всех разная, и кому то программирование нужно как доп знания, при помощи которых, может быть иногда они будут что то автоматизировать, или хотя бы просто представлять как это «все работает» — процесс реализации.
НЛО прилетело и опубликовало эту надпись здесь
я не знаю на какой специальности учится автор, она вроде не написала, НО кто вам сказал что по IT специальностям выпускаются только программисты, а как же сопровождение, менеджмент, аналитики.
НЛО прилетело и опубликовало эту надпись здесь
>не забывайте что в университете вы учитесь не одна, и если у вас все пошло в программировании на ура, то есть однокурсники, которым нужно уделять больше внимания на основы.

Вот так и получаются люди выучившиеся для бумажки. Не должно быть никакого «больше внимания». Курс один для всех, если у кого то проблемы с ним то это его проблемы. Литература, интернет, дополнительные уроки в помощь.
В школе, общеобразовательные предметы, еще может быть. А дальше человек должен понять, что учится для себя. А то привыкли, что тянут за уши.
вы в какой стране живете?
поступая как вы говорите — у нас получится следующее:
из 40 человек с группы — около 5 реально понимают программирование, остальные сдают его для галочки, уча как говорите вы — выгоняем 35 человек (так как они не дотянут этот уровень) — остается 5 человек, за которых преподаватель не получит достаточную ставку (оплату) — уйдет из университета и вуз закроют.
К тому же чистого IT образования у нас в стране вроде нет, все все равно связано с математикой, и если преподавать так же, как вы говорите, и математику — то выгонять и оставшихся 5 человек ;)
НЛО прилетело и опубликовало эту надпись здесь
я вам не говорю об обезъянах, я вам говорю о людях, которым программирование не нужно как основной профильный предмет.
НЛО прилетело и опубликовало эту надпись здесь
ну я вам уже в нескольких ветках пишу. 1) IT — это не только программирование! 2) программирование многим нужно не как основное, а как доп знание (к примеру — системным администраторам).
тем не менее в рамках курса института они должны знать его. Выучить. Сами. Или в институтах стали предъявлять непомерные требования?
да конечно должны и выучат! я то говорю только о том, что паскаля на обучения вполне достаточно, а если кто то хочет что то большее то пускай идет и сам научится, а преподаватели тут не причем, им нужно научить как можно больше студентов, а не как можно больше прочитать лекций.
Зачем выгонять? Трояки ставить!
Этих пятерых научат, а остальные диплом получат просто (как сейчас часто и получается).
смешно, но это глупость. если университет будет выпускать одних троечников, то к нему так же присмотрятся.
Эти 5 человек будут просто уметь программировать и будут иметь знания по программированию, но не факт что у них все будет гладко с остальными курсами, по ним им тоже ставить 3ки?
А в чем проблема ставить твойки?
Привыкли, что все хорошо учиться должны? По программированию 5, по чему-то другому 3 — это удивительно?
Школы золотых медалистов считают, универы краснодипломников…
Да нет никаких проблем у студентов, им же и так ставят без проблем ставят тройки (видят, что не нагружают, говорят, что им неинтересно, а потом с хвостами бегают). А вот у университета, наверное, есть проблемы…
+1 с математикой
У нас два препода по СИ, и оба чёрт возьми математики… а программирование не понятно каким боком к ним прицепили, соответственно и процесс обучения проходит среди логрифмов, дифференциалов, триги итд, и сколько я помню он ещё ни одного примера из жизни не давал. Обоим за 60.
если из сорока человек только 5 понимают прочитанный курс, то нужен ли такой курс? В чем его смысл? Заплатить деньги преподавателю?
Или написать в рекламной брошюре какие крутые курсы у нас преподают?

А не надоело общаться с людьми у которых написано в дипломе программист, а он/она только бумажки печатать умеет? :-/
>А не надоело общаться с людьми у которых написано в дипломе программист, а он/она только бумажки печатать умеет? :-/

А у меня другой вопрос возникае: если он/она только бумажки печатать умеет — то какого хера у него/неё в дипломе написано «программист», и почему на его/её место при поступлении не взяли другого/другую, который/которая бы понимал(а) читаемые ему/ей курсы?
бОльшая часть выпускников ИТ-специальностей именно такая. потому что оценки ставятся за
1. посещаемость
2. скачанные из интрнетов/вики рефераты и доклады
3. тупое зазубривание

могу расскзать наглядный пример — кафедра ИБ одного из ВУЗов, девочка идущая на красный диплом свято верит, что вирус это штука, которая затемняет диски. учится на бесплатном.
та же кафедра, другая девочка ходит с хвостами из-за непосещаемости/отсутствия рефератов/невовремя сданно лабы и с «зач.» в зачетке. работает по профилю со второго курса. учится на платном.
вот и вся разница.
Потому что для большинства идущих на красный диплом, красный диплом самоцель.
Не всегда. Кто-то из «красных» свято верит, что выйдет из ВУЗа со своим дипломом и сразу же пойдет работать по специальности на зарплату с пятью ноликами, бывает и такое :).
не забывайте что в университете вы учитесь не одна, и если у вас все пошло в программировании на ура, то есть однокурсники, которым нужно уделять больше внимания на основы. pascal я тоже не люблю, но для изучения его достаточно.

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

ну и со всеми согласен, что нельзя так за спиной у преподавателя, было бы вам на пользу, если бы он тоже прочитал этот ваш текст и… ну в общем это был бы хорошим вам уроком.
девушка, да не слушайте вы их. работа класс, выполнена на отлично!!!
и вообще вы красивы, я чертовски привлекателен, предлагаю отметить это дело ужином в ресторане )))
Все у вас нормально. Как говорил Larry Wall настоящий программист должен быть ленивым, тщеславным и еще там что-то не помню уже. Все у вас отлично — продолжайте в том же духе.
Блин, точно: ленивый, нетерпеливый, тщесланый.

Надо где-то записать себе )))
Извините, но чему тут хвалиться? В каждой группе есть 1-2 человека, которые заинтересованы в программировании и учатся сами.
Но результатом является программа, аналог которой на Qbasic мы делали в 9 классе(всем классом, причем сами сделали половина учеников). Чему тут хвалиться?

Не стоит путать стремления и результаты.
Стремления — похвальны. Результат — ПОКА ЕЩЕ не очень.

> А вы, дорогие читатели, когда-нибудь утирали нос нашей системе IT-образования вообще и отдельным преподавателям в частности?
Неверная мысль.
Я утер нос ему лишь однажды — устроившись на работу с 3хкратным окладом по отношению к остальным, окончившим универ профи. Оставив универ.
У кжадого свои задачи. Каждый сам решает что для него «Утереть нос»
Я так же считал.
Сравнивал себя с преподами, осознавая что я умнее.

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

А хороших преподов очень мало, но все же они есть, и спасибо им за это.
Правда 4 человека за 4 года — этого мало.
Уважаю :), хороший рост вверх.

Лично мне было скучно сравнивать свои знания со знаниями преподов. Я не получал от этого никакого фидбека. (а на первом курсе уже делал курсовые для 3го курса на Асме)
эх, меня даже в универ не взяли… заваливал физику и математику.
теперь приходится работать работодателем со свободным графиком в IT области.
Повезло. Мне представительности не хватает, хотя возможностей нанимать людей — куча.
Без нее ничего не выйдет, не получается нормально управлять людьми, чтобы продуктивно работали, но это же не их вина, это всегда вина руководителя.
хм… учитывая, что я со своими работниками общаюсь по аське (они в основном в других городах и СНГ), не понимаю зачем тут представительность. я обычно в трусах за монитором сижу (по утрам). вроде никто не жаловался.

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

второй момент — как показал мой опыт в найме работников (удаленных) — из 30 нормально работает 1. так что спасет только жесткий «фейс-контроль». как и женщину, хорошего работника надо искать долго и упорно, а потом холить и лелеять ))) поэтому обязательно — испытательный срок. начав работать работодателем, я понял для чего он существует в природе. а для того что множество людей на самом деле лентяи и раздолбаи, которым нужны мои деньги нахаляву. я был поражен )))
правда жизни…
НЛО прилетело и опубликовало эту надпись здесь
>Я утер нос ему лишь однажды — устроившись на работу с 3хкратным окладом по отношению к остальным, окончившим универ профи. Оставив универ.

Думаю, это очень зависит от универа и от тех самых «профи», с которыми Вы себя сравниваете. Одна моя знакомая краснодипломница мехмата работает «организатором меропиятий» в одной IT-конторе — ну так что, будем мерить по нет? :)
Сильно сомневаюсь, что Ваш оклад втрое превышает мой (да-да, я один из тех самых «окончивших универ профи») ;)
Девушка, если вы считаете и гордитесь своей курсовой, Вы, можете ее спокойно выкинуть.
Я сам преподаю в ВУЗе (не от хорошей жизни, а из-за педпрактики в магистратуре): ПиОА (программирование и основы алгоритмизации), информатику, ООП, паралельное программирование (это под мультрипроцессорные системы).
По вашей работе: вы гордитесь что это опенсорс. НОиспользование двух источников это явный перегиб, с меня требовали всегда как минимум 20 источников.
Что касается того что преподователь знает только немного дельфи. Назовите еще парадигмы кроме присваивания, ветвления, цикличности. Все остальное это их производные.
Для тех кто говорят что паскаль мерт. Да вы правы коммерчиских продуктов на нем не выпускаю, это сейчас чисто академический язык. Я преподаю ПИОА- фрипаскаль; ООП- C++: Паралельное — C++ MPI (и все под линуксом), готовлю курс на Ruby
Для тех кто говорит что преподы читают по бумажкам. тоже думал что преподы — лохи. И только когда знаешь несколько языков, понимаешь что запомнить — синтаксис каждого языка просто анреал, запоминать необходимо алгоритмы и схемы движения алгоритмов. И меня не обламывает прямо при студенте открыть например msdn и прочитать то чего незнаю
Любой преподаватель кстати рад если студент знает больше него. Это позволяет общатся со студентом на раных, а может чему то и научится.
«Я преподаю ПИОА- фрипаскаль; ООП- C++: Паралельное — C++ MPI (и все под линуксом)… при студенте открыть например msdn»
C++ MPI (и все под линуксом)
данный предмет
хотя если изменится учебный план, можно и на mpich отчитать

Студенты постоянно интересует на самом деле только один вопрос: как написать игру
после ответа: изучайте opengl, directX, и геометрию теряю интерес к программированию начисто.
«изучайте opengl, directX, и геометрию теряю интерес к программированию начисто»
Значит и не интересует… Есть один у меня хороший друг еще с лицейской «скамьи», заядлый геймер. Так вот, на уроках информатики, когда все на турбо паскале под досом строили какие-то графики и считали количество слов в текстовом файле он написал «змейку», многопользовательские башенки (две башни в разных концах уровня со сложным двумерным ландшафтом стреляют друг в друга по очереди, до попадания), а потом еще графический редактор в котором нарисовал 10ок простеньких спрайтов, редактор уровней, который загружал все нарисованные в этом редакторе картинки и позволял создавать из них уровни, которые затем подгружались в его квест, в котором надо было их проходить выполняя различные задания (например взять ножницы, разрезать ими паутину, затем сбегать за молотком, убить паука… все в строгой, запутанной последовательности, иначе это приводило к гибели героя или тупиковой ситуации).

Да, кстати, программистом он не стал и никогда не пытался, программирование его вообще особо не интересовало.
На первом уроке информатики, когда все делали первую программу на C — Hello World — я за 2 часа написал Арканойд :)
Пойми — «Выйгрыш это не победа, пройгрыш не поражение ». Я на первом курсе, на паре по программировнию сделал методичку семестровую за два занятия. И получил автомат. И что? Потом меня препод этот же «осадил» на банальной информатике (причем сделал это на лекции перед всей группой). И в добавок отправил сдавать зачет по информатике на комиссию!!!
Все люди разные и говорит что наше образование оторванно от реальности абсолютно не верно.
В технаре тебя учать крутить гайки и говорят тебе как это делать что бы ты мог каждый месяц получать зарплату. Тупо учать крутить гайки.
В вузе тебя учать думать. что бы ты из полученных знаний делал новые знания. Т.к. фиг его знает кем ты займешься после универа. Ктото уйдет писать на веб, ктото в БД ударится, комуто знание языков программирования это лишь строчка в резюме при устройстве на администратора, а ктото будет делать системы управления двигателями. Под каждого учебный план е подстроишь
НЛО прилетело и опубликовало эту надпись здесь
Ну и я тоже поумничаю :)

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

— Это типично для всех нас.

— Проучившись два года у знаменитого учителя Дзэна, он понял, что потерпел поражение, если выиграл.

— Понимаю.

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

— Это очень хорошо.

— Тогда он на три года направился в Гималаи и научился у великого Йога Махариши, что если он выиграл, но чувствует себя виноватым за это, то он потерпел поражение.

— Это грандиозно.

— Наконец, он стал учиться у Вернера.

— И что случилось?

— Он научился, наконец, развивать свои пешки.

:)
Ууу… вынужден огорчить, к сожалению, даже в нашем физико-математическом лицее была всего одна пара информатики в неделю, так что можно только представить сколько еще шедевров и новых версий легендарных игр так и не были написаны… =(
после ответа: изучайте opengl, directX, и геометрию теряю интерес к программированию начисто

Таких и не среди IT'шников навалом. Всем охота иметь детский конструктор. :)
Студенты постоянно интересует на самом деле только один вопрос: как написать игру после ответа: изучайте opengl, directX, и геометрию теряю интерес к программированию начисто.


&ltЗанудство&gt
на самом деле сейчас уже есть много готовых опенсорсных движков. Кстати в Blender'e тоже можно ваять игры. Так что OpenGL|DX и т.п. не главное. Главное — придумать интересный геймплей
&lt/Занудство&gt
Линейную алгебру забыли. Или не хотели пугать студентов? :)
Ничего. Но если уж геометрия людей пугает, то что говорить о линале.
Ну, дифуры понадобятся разве что при реализации физических движков. Т.е можно отложить на какое-то время.

А без векторов и матриц в 3D-графике вообще делать нечего.
да, у MSDN отличная удобная документация, в том числе по C++. Стандарт одинаковый, реализация и в gcc, и в MSVS очень во многом совпадает, так почему бы не читать более удобные маны из MSDN?
НЛО прилетело и опубликовало эту надпись здесь
Не спорте с имахол :). В ВУЗах работают люди с явным недостатком знаний по программированию, алгоритмам. Эти люди не умеют решать задачи. Они могут только подставлять 'готовые решения'.

Сам знаю более 7 синтаксисов языков программирования (не считая SQL/HTML/XML...) и ничего…