Перейти к содержанию
СофтФорум - всё о компьютерах и не только

Ego Drama

Новички
  • Постов

    26
  • Зарегистрирован

  • Посещение

Информация о Ego Drama

Достижения Ego Drama

5

Репутация

  1. Поздравляю с Днём Рождения! Оптимизма, счастья и того, чего хочется!

  2. @doc52, #!/usr/bin/env pythonf = lambda x: x**2 - 8*x + 10solve = lambda a, b: max(f(a), f(b))print(solve(-5, 5))
  3. Не так давно вышел перевод ANSI Common Lisp Пола Грэма. И электронный вариант за любую стоимость. Всем программистам и информатикам читать обязательно. Классика ;)
  4. Ну и плюс для доступа к элементам нужно написать акцессоры руками. Ну что тут поделать, это особенность C++ --- "пишем кучу типового квадратно-гнездового кода" и "сделай это сам" :) Сравните, например, описание алгебраического типа в любом ФЯП относительно некого подобия в C++: type node_t = NTInt of int | NTFloat of float | NTString of string
  5. Какой смысл использовать "классы", если фигачить интроспекцию руками? Используйте наследовние для элементов списка. Например, так: struct value_t {virtual void print() const = 0;};class int_t: value_t {int value;public:int_t(int value) { this->value = value;}void print() const { std::cout << value << std::endl;}};class double_t: value_t {double value;public:double_t(double value) { this->value = value;}void print() const { std::cout << value << std::endl;}};class string_t: value_t {std::string value;public:string_t(std::string value) { this->value = value;}void print() const { std::cout << value << std::endl;}};
  6. Перерисовывайте всё на событии WM_PAINT. И используйте лучше message crackers. P.S. Забавно :) Ещё кто-то пишет GUI чистом WinAPI.
  7. Жестяное, жуткое решение. Очевидно, что РБД совершенно не подходит к проблеме (по крайней мере, если нет специальных средств [может в Oracle что есть?]). Не занимайтесь ерундой, возьмите подходящий инструмент. На вскидку, могу предложить Redis. Смотреть следует в сторону spop, srandmember, randomkey. Все эти команды с O(1).
  8. Вы всерьёз полагаете, что Капитал Маркса мог устареть?
  9. Начни с этой Карл Маркс. Капитал. Том 1
  10. Нет. C++ никакого отношения к метапрограммированию не имеет и задумывался он не для этого (Страуструп решил скрестить С и Симулу, для своих крамольных задач). DSL писать на С++ очень сложно и не эффективно. Классы никакого отношение к метапрограммированию не имеют (при помощи классов невозможно изменить сематнику языка, они не для этого предназначены). Метапрограммировать на С++ можно template'ами, но очень тяжело и не удобно. Template'ы задумывались как средство для реализации в C++ парадигмы `generic programming', и значительно позже выяснилось, что template'ы обладают некоторыми механизмами для метапрограммирования. Но фактические, ничего сложнее чем boost::spirit на шаблонах до сих пор не написали. Если нужен язык для создания языков, то в мире таких вещей много: Lisp, ML, OCaml (ocamlp, ocamllex, ocamlyacc), Haskell, Ruby и др. В плане возможностей метапрограммирования любая из этих технологий заткнёт за пояс плюсовые шаблоны. Универсальных языков не существует и никогда не будет существовать.
  11. Практически, те вакансии, которые выкладываются работодателями на рекрутинговых ресурсах, расчитаны, в большинстве случаев, на кодеров. Но иногда встречаются с такими названиями вакансии на интересную работу именно программистов. Это скорее некая дань единообразию и конъюктуре. Всё же собеседование расставляет точки над и. Если работодателю нужен программист, способный решать задачи, от человека будут требовать знания множества разных технологий и языков, а также фундаментальное математическое образование. Кодер же будет удивляться, почему с него спрашивали какие-то странные и "не нужные" в его работе вещи и не взяли на работу :-)
  12. Если вы хотите достичь успехов в решении задач, а также получать удовольствие от конечной реализации, то с C++ вам не по пути. Вредно зацикливаться на одной спорной и невнятной технологии. Это путь в никуда.
  13. Эу. У меня есть подозрения, что вы немного запутались в своих утверждениях. Говорите, что "C++ не расчитан на облегчение жизни программиста" и кодирование на C++ "черевато ошибками". И в тоже время опровергаете это заключением о том, что C++ для эффективного и быстрого написания программ. Как же такое может быть? Объясните почтенной публике. Именно по причине, что C++ "предъявляет высокие требования к квалификации и безошибочности программиста" его и стоит выбросить на свалку истории. Свалка светит именно потому, что C++, от природы, полагает, что программист это некий робот, который сможет управиться с, иcторически сложившейся, нелепой семантикой языка. И вместо того, что бы непосредственно решать прикладную задачу, подобрав подходящий инструмент, С++ кодер отчаянно и героически стражается с нелепостями своего инструмента. Именно по этой причине, C++ кодеры всё менее и менее востребованы. C++ кодеры не рентабельны. Они, в большинстве случаев, крайне не эффективны. Тратят время и деньги работодателя. Всё меньше и меньше доля рынка у C++. Сейчас уже почти никто не начинает новые проекты на нём. Вся работа это, в основном, legacy. Болото и забвение. Нет. Вас обманули. В C++ остроумия и изящности приблезительно столько же, сколько "в танцующем медведе". C++ кажется остраумным и изящным только тем господам, которые не видели ничего слаще этого и которые ещё не выписались из детского сада. "Остроумие и изящество" присуще, в основном, академическим технологиям. И тут следует смотреть в сторону, например, Haskell. Синтаксис языка совершенно никак не коррелирует с быстрой разработкой программ. И для быстрого прототипирования C++ подходит крайне паршиво. На свете существует масса технологий для прототипирования, расчитаных на широкий круг задач, например: Prolog, Lisp - области, где удобна логика предикатов (например, экспертные системы), трансляторы/компиляторы; Tcl/Tk - GUI; Ruby/Python/Perl/Tcl - автоматизация, интеграция, и пр. и т.д. Ещё большая глупость - изучение его на программстских специальностях. Программисты должны в первую очередь изучать математику, а далее прикладные области и методологии. Программист должен чётко разбираться в сематниках языков программирование. И обладая данным фундаментом, программист без труда в кратчайшие сроки изучит синтаксис любого языка, разберётся в сильных и слабых сторонах. И далее раздаст задачи обезьянкам-кодерам. На фоне этого, изучение C++ глупая и бесполезная трата времени. Изучение C++ удел проф. училищ (причём, весьма посредственных).
  14. Ни один из перечисленных языков не является переспективным. И в будущем не создадут язык, который станет самым переспективным. Серебрянной пули никогда не будет. Фраза "язык общего назначения" звучит как "и швец, и жнец, и на дуде игрец". Фраза "программист на <подставить любой язык> языке" круто звучит только в детском саду (ни одну девочку уже не удивить этой фразой :)). Программист никогда не скажет что "я программист на <таком-то> языке", такое могут сказать лишь кодеры-неучи (которые скоро пойдут подметать подъезды, ибо кризис [слава Богам!]). Программист скажет - "я программист, знающий <такую-то> предметную область (области). Могу решать <такие-то> задачи". Все попытки создать "язык для всех задач" обречены на полнейший провал. Попыток было достаточно (Ada, C++, Java, Cobol, ...) --- провал. Полный. Очевидно, что будущее за предметно-ориентированными языкими. Бросайте учить C++, Delphi, Basic, Pascal и прочее --- инструмент вторичен. Учите математику, исследуйте предметные области. Выбирайте инструмент под задачу. Будте разумными людьми.
×
×
  • Создать...