LINUX.ORG.RU

Стоит ли учить Delphi? А может сразу на C?

 , ,


0

4

Добровольно-принудительно По традиции русской информатики, я сейчас доучиваю TurboPascal по учебнику Фаронова. И что же дальше:

  1. Учить Delphi (Фаронов). Пописать на Embarcadero Studio, а потом на C. Я читал форумы и вроде Delphi еще нужен в ВУЗах.
  2. Учить C ANSI по учебнику Ритчи. И дальше в программирование на GNU/Linux.
  3. Выучить C, перейти на C++, а там куда глаза глядят. Но я боюсь, что C++ не осилю (чтобы писать грамотный код) без наставника.

UPD1:Мне объяснили,что Pascal/Delphi не нужен.

Deleted

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

Ну да, пускай эксплуатант еще пару планочек оперативы гигов по 8 докупит, и проц побыстрей.

именно, чаще всего это обойдётся сильно дешевле

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

Да любой мейнстримный язык.

Как насчет критерия мейнстримности? Индекс TIOBE подойдет?

Я про то, что реальность, о которой помянул Legioner, это не биты-байты, а ТЗ заказчика.

И как это относится к ЯП? Ну кроме наличия библиотек для работы в конкретной обзасти под конкретный язык?

shkolnick-kun ★★★★★
()
Ответ на: комментарий от lazyklimm

именно, чаще всего это обойдётся сильно дешевле

This:

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

shkolnick-kun ★★★★★
()
Ответ на: комментарий от Legioner

Scheme слишком сложный

упрлс? В каком месте Scheme сложный язык?

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

Индекс TIOBE подойдет?

Да

И как это относится к ЯП?

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

Я писал за деньги и на си, и на 1С. Знание железа мне нигде не понадобилось (разве что SIMD-интринсики однажды пригодились), а 1С-ники обычно не знают даже что такое ОС, и им это нисколько не мешает. И теперь прикинь, сколько людей занимается одним, а сколько другим.

Конечно, ембедщикам всё это нужно (и не нужен какой-нибудь бухучет), их просто меньшинство.

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

а если им и не нужны эти указатели?

Затрудняюсь представить ситуацию, когда нужен C++ и не нужны указатели. Если не нужно опускаться на низкий уровень, есть более удачные ЯП.

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

Сложность понимания указателей по сравнению с остальными фичами современного С++ пренебрежимо мала.

anonymous
()

Qt наше всё.

Qt наше всё.
Много видел дельфистов, которые перешли на C++Qt и были очень довольны.

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

просто есть прослойка людей, которых хлебом не корми, дай всё на С++ написать, про более удачные ЯП категорически согласен

lazyklimm ★★★★★
()
Ответ на: Qt наше всё. от CriDos

Дельфистов и так не много, по определению :) Ты преувеличиваешь. Ну и падавший и падающий от погоды на марсе QtCreator с bad_allocами при импорте проектов сильно снижают декларированное «удовольствие» :) В других падающих хоть можно было установить причину — зайчатки моска порвались на парсинге некоторых сорцов, и оные зайчатки моска отключить, которые разрывало на вложенных шаблонах или «С++11».

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

Кто ничего слаще репы не ел, практикуют «усвоенные в децтве паттерны пищевого поведения». С языками аналогично. Утиная типизация привычек :)

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

Что-то я там никакого обоснования не нашел.

Стоит ли учить Delphi? А может сразу на C? (комментарий)

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

А что тогда считать сишным бэкграундом?
И каким образом сишный бэкграунд может быть вреден? Например, вот этот вот аргумент:

а потом в коде каша из C и плюсов, которую хрен разгребёшь

выглядит просто смешно. Плюсы и так в себя включают C. Если писать на C++ в стиле C то это будет все же C++ а не смесь чего-то с чем-то. И нет ничего плохого в том, чтобы писать на C++ частично или полностью в том стиле, который принят в C. Назовем такой способ «C/C++»
Если кто-то написал код на этом «C/C++», плюсовый программист, не умеющий понимать C стиль этот код разобрать не сможет. При этом этот «C/C++» является вполне валидным C++ кодом и не нарушает никакие стандарты C++. Так что хороший программист на плюсах должен хорошо понимать C чтобы уметь такой код разбирать и править. Язык C является неплохим плацдармом как для ныряния в плюсы и прочие более высокоуровневые язычки, так и для ныряния в глубины ассемблера. Я не верю, что знание C может как-то фатально испортить мозги и не позволить/затруднить изучение плюсов

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

При этом этот «C/C++» является вполне валидным C++ кодом и не нарушает никакие стандарты C++.

стандарты не нарушает, а вот с гайдлайнами от мЭтров вполне себе может конфликтовать

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

он должен понимать вот этот вот «C/C++»

Я не верю, что знание C может как-то фатально испортить мозги и не позволить/затруднить изучение плюсов

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

и прочие более высокоуровневые язычки

ну-ка, расскажи, как знание C поможет в освоении какого-нибудь эрланга, например

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

Страуструп, Саттер и др. пытаются выделить подможество «правильный С++» в рамках современного стандарта. Так вот это подмножество на С уже совсем не похоже. Это просто другой язык.

anonymous
()

Стоит ли учить Delphi?

Delphy не надо учить.Если заставят, только как учебный.

Учи С, С++ (как ООП), ибо большая часть софта написана на этих языках.

Учи предметную область, это тоже обязательно(!).

Наверное, для денег, учить надо и Java.

Не учи Haskell, таких было много и у каждого из них был свой краткий момент «крутизны».

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

он должен понимать вот этот вот «C/C++»

Нельзя уметь понимать «C/C++» не умея понимать C

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

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

ну-ка, расскажи, как знание C поможет в освоении какого-нибудь эрланга, например

Да очень просто. Я-то сам не знаю этого эрланга, но глядя на простые примеры его кода и имея опыт программирования на C, я отлично могу понять его.

-module(count_to_ten).
-export([count_to_ten/0]).
 
count_to_ten() -> do_count(0).
 
do_count(10) -> 10;
do_count(Value) -> do_count(Value + 1).
Очевидно что на C это будет как-то так

unsigned int count_to_ten(void)
{
  return do_count(0); // count_to_ten() -> do_count(0).
}
unsigned int do_count(unsigned int i)
{
  if (i == 10) return 10;     // do_count(10) -> 10;
  else return do_count(i+1);  // do_count(10) -> 10;
}

Аналогично со всякими «классическими» примерами, вроде чисел фибоначчи и факториалов.
Если взять двух людей с одинаковыми способностями к программированию и проч., один не знает ни одного ЯП, другой знает C, то при прочих равных условиях, человеку со знаним C будет проще осваивать erlang, в этом я не сомневаюсь

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

имея опыт программирования на C, я отлично могу понять его

Это общие знания, которые дает любой ЯП.

человеку со знаним C будет проще осваивать erlang

А человеку со знанием ЯП высокого уровня - еще проще. Нафига тут опыт в замесе указателей? А больше ничего особого си не дает.

// Я тут выше выступал за начинание с си, но только как подготовку к C++ (недостаточную, кстати, но почти необходимую). По наблюдениям, функциональщину вообще мало кто осиливает после си.

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

Это общие знания, которые дает любой ЯП.

Не любой. Брейнфак например таких знаний не даст. Там понятия функций(процедур) вообще нет.

А человеку со знанием ЯП высокого уровня - еще проще.

Да, наверняка есть языки, знание которых лучше поможе понять erlang чем знание C.

Нафига тут опыт в замесе указателей?

Указатели это очень фундаментальная штука. Если ты понимаешь указатели, ты понимаешь работу ЭВМ (пусть и неполно). И потом когда-нибудь ты возможно заглянешь в исходные коды Beam VM от этого ерланка, и разберешься в них. Там точно есть какие-то указатели. Любая программа на современных ЭВМ использует указатели в том или ином виде(это может быть заабстрагировано, но указатели есть везде). Указатель это просто адрес. Указатели это ОСНОВА. Любой нормальный программист должен понимать указатели и уметь их использовать.

По наблюдениям, функциональщину вообще мало кто осиливает после си.

Не знаю, что там за наблюдения такие. Нужна статистика. Я не вижу никаких препятствий в осваивании ФП после Си.

SZT ★★★★★
()

Дельфи и всякое паскальное - однозначно в топку. Оно совершенно некроссплатформенное, даже Lasarus никак не допилят, чтоб оно на каких-нибудь MIPS'ах работало. Да и, видимо, это и не нужно никому - слишком узкая ниша у языка, чтобы кому-то он понадобился не на x86.

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

За С/С++ имеет смысл взяться хотя бы потому, что и тот и другой останутся актуальными и востребованными ещё лет 50 как минимум. Неосиляторов сишечки и всяких недоумков с жёстким ООП головного мозга не слушай, они так своё ЧСВ чешут. Одним ООП сыт не будешь, недаром единственная взлетевшая ОС частично написанная на C++ недавно сдохла в корчах (EPOC который стал Symbian'ом и потом умер). Одним С тоже сыт не будешь, потому как есть ненулевая вероятность, что Qt например, станет таки основным фреймворком для всевозможной гуйни на всех возможных платформах. В общем, ядро ОС на С нынче, а гуйня - на С++. Использование каких-то прокладок и левых язычков для написания сколь-нибудь вменяемого софта - просто потеря производительности и лишний ужор памяти.

Stanson ★★★★★
()

А может сразу на C?

Да.

mix_mix ★★★★★
()

Delphi еще нужен в ВУЗах

Чуть не упал. Ладно, фортран...

UPD1:Мне объяснили,что Pascal/Delphi не нужен.

И правильно сделали.

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

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

а если один из них знает scheme, а другой C?

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

И потом когда-нибудь ты возможно заглянешь в исходные коды Beam VM от этого ерланка, и разберешься в них.

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

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

зачем? я уже не помню, когда последний раз «месился» в указатели, что не мешает мне успешно работать

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

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

шёл 2016й год, байтодрочеры всё считали байтики

Даже на моём нищебродском acer c720 я отлично себя чувствую с софтом на «левых язычках».

Чиста для примера: tuxguitar (java), stumpwm (CL), кучка питоноговна, да и у emacs-а на C только небольшое ядро написано.

К слову, использование C/C++ для написания сколь-нибудь вменяемого софта - это потеря производительности программисты и лишний ужор человеко-времени (и, как следствие, денег).

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

Окуенно, чо. Похер на юзера, лишь бы погромисту удобно было. Ага.

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

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

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

надеюсь, это не этот viaweb http://www.viaweb.ru/ ))))))))))

нет, дурачок, это не виавеб.ру, это виавеб.ком и цитата оттуда же: $68 Billion and counting in sales for retailers.

т.е. 68 млрд долларов. вот так вот!

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

Похер на юзера, лишь бы погромисту удобно было. Ага.

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

Программы пишутся вовсе не для программистов,

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

и оцениваются юзерами вовсе не по тому на каком языке написаны.

бинго! Потому юзеру похеру, что там внутре, лишь бы работало и выполняло задачи

всякого погромистского шлака

типа использования низкоуровневых языков по назначению и пиханию императивщины во все дыры

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

а если один из них знает scheme, а другой C?

Речь шла не о том, какой язык брать, чтобы после него проще было выучить erlang. Цитирую

ну-ка, расскажи, как знание C поможет в освоении какого-нибудь эрланга, например

Ты просил рассказать, как знание C поможет в освоении эрланга. Я рассказал. Про «какой язык лучше освоить, чтоб потом после него было легко понять ерланг» речи не шло.

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

зачем? я уже не помню, когда последний раз «месился» в указатели, что не мешает мне успешно работать

А что значит «меситься» в указатели? Вот например

unsigned char a[10] = {7,2,6,3,8,0,1,4,5,9};

// тут мы месим указатели?
printf("%u ", *(a+1) );
printf("%u ", *(a+*(a+2)) );
printf("%u ", *(a+*(a+*(a+3))) );

// а тут?
printf("%u ", a[1]);
printf("%u ", a[a[2]]);
printf("%u ", a[a[a[3]]]);

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

ну и тогда каждый первый - функциональщик

У меня не сложилось такого впечатления.

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

Похер на юзера, лишь бы погромисту удобно было

Ха. В развитых инфраструктурах, ориентированных на юзера (винда, мак, мобилы), c/c++ выметены поганой метлой откуда только можно. Только линуксоеды устраивают культ... с предсказуемыми последствиями.

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

c/c++ выметены поганой метлой откуда только можно.

В айфонах и прочих яблоподелиях используется obj-c, а яблоко от яблони недалеко падает, и там в этом obj-с все эти извращения с указатеиями вполне возможны, и в отличии от C++ этот язык полностью обратно совместим с каким-то стандартом C. А еще под айпадики-айподики и проч. можно писать на плюсах, и даже есть такая штука obj-c++ которая совмещает плюсы и этот obj-c

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

obj-c концептуально больше smalltalk чем си (я не спец, так пишут), там низкоуровневой возней обычно не занимаются. И от него все равно уходят.

А еще под айпадики-айподики и проч. можно писать на плюсах

Но таки на них не пишут когда есть выбор. Юзеру в первую очередь нужно рабочее приложение, и только во вторую - быстрое (в третью, если вспомнить unix-way).

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

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

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

И с другой стороны, ЯП высокого уровня - это совсем необязательно медленно.

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

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

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

Даже смартпойнтеры небесплатны.

И чем же «не бесплатен» unique_ptr? И даже если говорить об shared_ptr, то если есть необходимость именно в подсчёте ссылок, то куда ты денешься? Свой велосипед будет не лучше.

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

Т.е. долбимся мы с указателями или нет - зависит от синтаксиса? Ок, вопросов больше не имею.

SZT ★★★★★
()
Ответ на: Qt наше всё. от CriDos

Тебя все обыскались уже

Прощу извинения всех читающих))) Блин чувак давай выходи на связь тут новости важные.

Inoy
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.