Я разработчик PHP, и недавно я начал работать с CodeIgniter. Кажется, что всякий раз, когда я ищу что-то, связанное с CodeIgniter, сообщения в блоге и тому подобное, как правило, относятся к '09 или '10, так что это заставляет меня задуматься, действительно ли CodeIgniter по-прежнему актуален и будет ли это в будущем? Есть ли другая структура, которая занимает его место?
То же самое касается и других языков и фреймворков. В какой момент вы отказываетесь от изучения определенных языков или рамок? Есть ли простой способ найти те, которые появляются и стоят того, чтобы их поднять?
web-development
frameworks
рукав моря
источник
источник
Ответы:
Это не точная наука, поэтому не ожидайте, что сможете предсказать будущие тенденции в технологическом ландшафте более чем на 5 лет с уверенностью.
Но я бы искал все следующее:
источник
Нет никакого способа узнать, будет ли что-то доказано в будущем, и я бы предпочел сосредоточиться на том, помогут ли технологии решить проблему, с которой я столкнулся сегодня. Вы отказались бы от изучения определенного языка или структуры, когда она больше не работает для решения ваших проблем.
Примите участие в сообществе, которое представляет то, что вы делаете, и вы сможете лучше понять, что происходит и что уходит, но даже тогда я предпочел бы тратить свое время на лучший инструмент для работы, а не на то, что жарко, или то, что я думаю, будет жарко. год или два с этого момента.
источник
Невозможно окончательно определить, является ли что-то доказательством будущего. Самое близкое, что вы можете сделать, - это определить уровень активности вокруг определенного языка или фреймворка - если есть много активности разработчиков, обычно это хороший признак того, что язык / фреймворк набирает популярность и будет жизнеспособным в течение некоторого времени. , Обратное указывает на то, что волнения меньше и что поддержка (через форумы разработчиков) может быть труднее получить.
До тех пор, пока выбранный вами язык / структура решает проблему, которую вы пытаетесь решить, вам не нужно беспокоиться о будущем, если вы явно не работаете с умирающей технологией. Технологии постоянно меняются - вы можете следить за тенденциями в отрасли. Изучение новых языков программирования / каркасов, как отмечено в этой теме , может помочь вам не отставать от тенденций и дает вам возможность постоянно оценивать новые инструменты.
источник
«Защищенность от будущего» - это не только сила воли и упрямство, но и более прагматичные проблемы.
Экстремальный пример это . Sparkle Filters по-прежнему работает на компьютере IBM 402 конца 40-х годов в качестве своей системы учета. Это машина, которая запрограммирована с использованием электрических панелей, а не «файлов».
У меня лично был опыт работы с компанией, которая до сих пор поддерживает машины на базе MS-DOS в специализированных приборах, рассчитанных на десятилетия работы. Я даже отказался от работающего PDP еще в 1997 году.
Я бы сказал, что если ваша компания посетит музей истории компьютеров, как это сделали Sparkle Filters, это будет признаком того, что вы (или ваши предки) успешно «оправдали будущее»!
источник
Я могу ответить, является ли конкретная технология перспективной - ответ почти наверняка нет, поскольку вы не установили временные рамки для этого.
Чтобы сделать этот вопрос ответственным, вам нужно добавить некоторые детали в требования. Например:
Выбор языка / структуры / технологии действительно является частью управления рисками в проекте. Как и в случае со всеми рисками, вам нужно учитывать ряд факторов (я стараюсь держать это вкратце), а затем предпринять шаги, чтобы снизить его до уровня, соответствующего текущей ситуации.
Как и в большинстве вещей в жизни, деятельность, которая сопряжена с наименьшим риском, на самом деле не может быть лучшим выбором.
Короче говоря, сколько неопределенности вы готовы пережить по сравнению с выгодами, которые вы собираетесь получить от использования в течение ожидаемого срока службы проекта.
Чем дольше вы хотите заглянуть в будущее, тем меньше будет уверенности. Если вы довольны, например, беспокойством только о следующих двух годах, ваш выбор будет гораздо проще сделать (и у вас будет гораздо больше возможностей), чем выбрать что-то, что должно быть в ближайшие 10 лет.
источник
Есть так много факторов, я бы сказал, это невозможно. Среди вещей, которые могут пойти не так:
В конце концов, это не так важно. CodeIgniter работает для вас и доставляет то, что вы хотите. Ничто из того, что вы делаете, не перестанет работать, потому что публикации в блоге устарели или скорость публикации замедлилась. Поэтому я советую использовать то, что работает сейчас, и иметь дело с будущим, когда оно наступит.
источник
PHP-фреймворк Symfony прекрасно объяснил это на своем сайте .
источник
Ключ терпения. Терпение, терпение, терпение. Там нет никакого способа, чтобы точно предсказать будущее. (мне даже нужно было написать это?) Но если вы дадите новую технологию пару лет и посмотрите, как она будет принята, у вас будет хорошее представление о том, укоренится ли она и подходит ли она для долгосрочных проектов / временных инвестиций. ,
Поэтому, когда наступит время NextNewThing (tm), не стесняйтесь прыгать на подножку ... просто не для чего-то важного в первые пару лет.
источник
Ответ Микераса довольно хорош. Я добавлю, что будущее - это своего рода управление безопасностью или риском. Это часто требует от вас отказаться от определенных удобств и выгод от затрат / производительности сейчас, чтобы избежать проблем позже. Я уже довольно давно создаю технологию, способную обеспечить будущее. Есть определенные шаблоны, которые могут помочь. Вот несколько
Данные должны храниться в открытом формате, который легко извлечь или преобразовать позже. Нечетные форматы файлов - это большая техника блокировки и область ловушек в целом. Кроме того, предпочтите более простые подходы, такие как CSV, ASN.1 или JSON, по сравнению со сложным дерьмом, таким как XML или, скажем, формат Word 97;). Идея заключается в том, что достаточно просто собрать парсер самостоятельно, а низкоуровневый парсер формата можно повторно использовать в ваших приложениях.
В идеале приложения должны иметь встроенные в них интерфейсы, независимые от поставщиков и технологий, а также точное описание того, что они делают. Вы должны спроектировать вещи, где вы можете изменить или выбросить реализацию, ничего не нарушая. Кроме того, легко перейти на новую платформу, если ваш метод вызова процедур или обработки данных работает на разных платформах. Таким образом, интерфейсы являются наиболее важной вещью, чтобы получить правильный. Чем проще, быстрее и более открыт метод реализации интерфейса, тем лучше.
Стек должен быть полностью открытым исходным кодом и свободен для изменения. Лицензии GPL, LGPL, BSD, MIT и т. Д. Подходят под этим углом зрения. Идея состоит в том, что, если сообщество начнет угасать, возможно, потребуется переместить стек в новое [оборудование / ОС / протокол / и т. Д.]. И вам нужен код, чтобы сделать это.
Конструкция стека должна быть чрезвычайно модульной, чтобы каждый элемент был понятен одному человеку. Это облегчает для новой группы подобрать и поддерживать его. Имея даже самые низкие уровни времени выполнения, библиотеки и компилятор, хорошо спроектированные, могут принести огромную отдачу, если их нужно перенести. Часто только одна часть может быть перенесена, и весь ваш старый код будет работать.
Ваше приложение должно быть выполнено по модульному принципу, учитывающему детали платформы для минимизации переделок в этой области. Это также помогает структурировать функции в блоки ввода / обработки / вывода, где это возможно. Это может помочь в анализе того, что будет зависеть от порта (и в целом в анализе правильности методологии «Чистая комната»). Для платформы с минимальным риском целесообразно использовать функции наименьшего общего знаменателя, которые поддерживаются повсеместно, с одним интерфейсом, который позволяет вам использовать их, еще больше сокращая портирование. (Я сказал, что вы что-то потеряете ...)
Помогают динамическая типизация, вывод типов или другие гибкие подходы. Порт на новую платформу может изменить определения базовых типов. Языки с сильной внутренней типизацией означают, что вы меньше беспокоитесь об этом.
Держите модель параллелизма простой. Управляемая событиями передача сообщений через понятные интерфейсы переносима на ... практически все. Там также сопрограммы. Вы просто хотите избежать маршрутов, которые подвержены как ошибкам, так и проблемам переносимости.
Посмотрите на переносимые приложения Mozilla и Apache. Они учитывают многие специфичные для платформы проблемы с определенным интерфейсом и вариантами реализации. Они могут подсказать вам, о чем беспокоиться, наряду с предоставлением хороших решений многих проблем.
Прекрасный пример: Tcl. Я знаю, многие ненавидят это, и я редко использую это сам. Тем не менее, Tcl является чрезвычайно простым языком для понимания, реализации (12 основных правил) и кодирования. Он небольшой, достаточно быстрый, интегрируется с веб-серверами, внедряется в нативные приложения, портирован на множество вещей, имеет определенные функции безопасности и регулярно обновляется с 80-х годов, когда он был сделан. Вы или я могли бы реализовать всю среду выполнения TCL в кратчайшие сроки для основного языка. Если бы нам пришлось портировать стандартную библиотеку, это было бы проще, чем портирование .NET или Java. И для этого написано немало полезного кода. И он использовался в веб-технологиях еще в то время, когда «мобильный агент» увлекался апплетами Java. Например, веб-инфраструктура OpenACS восходит к 1998 году, когда сервер был старше этого.
Другие примеры: BASIC, COBOL и LISP (схема или CL). Все эти языки восходят к 50-м или 60-м годам. Они достаточно просты, чтобы облегчить понимание, реализацию и механический перевод. Тем не менее, вы можете создавать полезные вещи с ними. COBOL по-прежнему обеспечивает большую часть обработки транзакций в мире, несколько раз обновлялась и работала даже на .NET. Старые приложения QBasic / QuickBASIC все еще работают сегодня с открытыми / бесплатными инструментами на современных платформах, наряду с возможностями переноса на более совершенные инструменты, такие как GAMBAS или RealBASIC. LISP-кодеры, естественно, делают свои системы модульными и функциональными, облегчая портирование. В течение десятилетий для него был постоянный поток реализаций, открытых и коммерческих.
Итак, интерфейсы, открытость, простота, модульность и независящая от платформы архитектура / дизайн / кодирование. ЭТО даст вам перспективу, в которой вы нуждаетесь. Во всяком случае, большую часть времени.
источник