Ruby, Python, C # и PHP для обучения основам и производительности - PullRequest
4 голосов
/ 22 марта 2009

Я прочитал тонну постов и статей обо всех этих языках, а также о достоинствах и недостатках каждого из них. Я понимаю, что некоторые люди скажут «О, другой« лучший вопрос языка »», и, честно говоря, мне все равно. Мне действительно любопытно, и я думаю, что это интересный вопрос для здоровой дискуссии. Я хотел бы выучить язык, который будет преподавать хорошие основы программирования, а также позволит быстро освоить что-то. В конечном итоге я хотел бы иметь возможность создавать сайты и сайты / приложения, подобные Web 2.0. Было бы также неплохо найти работу в том случае, если я когда-нибудь достигну уровня знаний, где это может быть возможно. Я начал и переключился между несколькими платформами, и одной проблемой с несколькими были все необходимые компоненты и модули, которые требовались от разных поставщиков (Eclipse с Aptana и Zend вызвал некоторые проблемы при настройке). Одна вещь, которая мне действительно понравилась в платформе .NET, это то, что это единая среда с большим количеством документации, которая довольно легко работает вместе. Тем не менее, я знаю, что существует вероятность возникновения проблем с расходами в будущем, хотя я не уверен, насколько это применимо к соло-разработчикам с небольшими проектами. Кроме того, хотя я думаю, что C # - это отличный язык, который может преподавать хорошие основы, реалистично ли получить некоторый уровень компетенции за более короткий период времени, если учиться в нерабочее время.
Я также посмотрел на Java, и казалось, что это может быть излишним для того, что я пытаюсь сделать, хотя я не могу утверждать это с какой-либо уверенностью.

PHP кажется отличным языком веб-разработки, с которым было построено множество огромных сайтов, но я постоянно повторяю одну и ту же проблему - это склонность к плохим привычкам (я знаю, это возможно при все языки, но опять же, я хочу тот, который минимизировал бы этот потенциал при разумной дисциплине. Проблемы с ценами, кажется, намного меньше проблемы с php, и, кажется, вездесуще с хостами.
Я много чего слышал о Python, и прошел несколько уроков, но, похоже, было так больно в заднице заставить его работать как единая система, как это делает .NET. Я знаю, что Django должен быть великолепным, но это была и боль в заднице:

Руби, кажется, приятно учиться, но преподает ли он основы наилучшим образом? Имеет ли значение в конце концов, если это заставит меня идти раньше? К тому же, похоже, что с php и C # не так много рабочих мест (по крайней мере, было бы неплохо иметь возможность выполнять какую-то внештатную работу в какой-то момент).
Это очень субъективный вопрос, поэтому извиняюсь за это, а также за его длину. Любая помощь приветствуется. Я балансирую на грани концентрации внимания на одном из нескольких языков, и ваше руководство действительно поможет.

Таким образом, какой язык я должен выучить для веб-разработки (сайты, подобные веб 2.0), который позволяет новичку достаточно быстро встать и учит хорошим привычкам, так что было бы легко освоить новые языки?

Ответы [ 5 ]

3 голосов
/ 22 марта 2009

Неважно, на каком языке / фреймворке вы стартуете, если у вас есть драйв, доведите его до конца.

Это, как говорится, не очень помогает, поэтому я собираюсь предложить вам очень личное мнение. Я не думаю, что Ruby или Rails были бы хорошим способом начать просто потому, что за кулисами происходит слишком много магии. Хотя лично мне нравится RoR, так что проверяйте также. Я просто не знаю, можете ли вы (или хотите) начать с этого.

ASP.net будет хорошим местом для начала, имея хороший баланс между тем, что волшебно, а что нет; ваш выбор языка программирования в сочетании с достойной структурой. C # - довольно хороший язык, и он постоянно улучшается.

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

Для меня, как новичка в веб-разработке, ASP.net был находкой, когда я боролся с тем, почему мы должны делать то и это в веб-приложениях на Java. Так что я с ASP.net на этом.

2 голосов
/ 22 марта 2009

«Я хотел бы выучить язык, который научит основам программирования» - это не похоже на PHP. Вы можете изучить основные принципы использования forloop, но это не лучший выбор, если вы хотите изучить хорошие методы программирования.

Если вы не можете развиваться вне толстого десятитонного IDE Python, на самом деле это не язык для вас. Я не уверен насчет ruby, но я думаю, что он довольно похож в этом отношении (сложно статически анализировать код, поэтому не так уж много пользы от IDE, которые пытаются угадать, что вы думаете, когда нажимаете точку). И ruby, и python - отличные языки, если вы можете немного изменить свой мыслительный процесс, чтобы понять основы.

Таким образом, у вас остается C #, который является отличным языком и .net, с которым вы в значительной степени застряли в Windows (да, я знаю, что это моно, это далеко от ms .net). На мой взгляд, .net не очень подходит для изучения основ программирования (особенно веб-разработки).

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

1 голос
/ 22 марта 2009

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

Как уже упоминалось в Pragmatic Programmer, старайтесь изучать новый язык каждый год. Как только закончите, попробуйте несколько проектов и просмотрите проекты FOSS, выполненные с использованием этого языка, чтобы изучить лучшие практики, подходы, присоединиться к сообществу, принять участие на форумах, разберитесь в его неприятностях и взломах.

Выполнение всего за один раз не даст полезных результатов и может еще больше сбить вас с толку, когда вы увидите это снова.

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

0 голосов
/ 24 марта 2009

Мое пристрастное мнение - это Python. Вы можете легко создавать динамические веб-сайты, у них есть веб-сервер, который работает в 1 строке кода, он основан на принципах «Батареи в комплекте». Документации иногда не хватает, но сообщество хорошее. Вы могли бы изо всех сил пытаться найти всеохватывающую IDE все же. Лично я использую различные редакторы от старого доброго vi до scite, kate, eclipse и даже просто консоли python для быстрого тестирования фрагментов.

0 голосов
/ 22 марта 2009

вы не упомянули Flash / AS3, который, безусловно, будет рассматриваться как законная среда для изучения приложений Web 2.0 на широком спектре платформ. Я нахожу, что с помощью Flex я могу выполнять очень полезную и удивительно отработанную работу довольно быстро, и у меня есть куча ресурсов ... и множество библиотек и Flex Builder (построенный на Eclipse) довольно хороший / хороший отладчик.

И бонус: AS3 походит на javascript на стероидах, поэтому выберите опцию jQuery, и вы будете хорошо подготовлены к работе с клиентской стороной

...