Подтвердить что ты не робот

Какой язык программирования для облачных вычислений?

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

Я думаю, что поддержка Java, ASP.NET, PHP, Python, Ruby, Perl и т.д., а не низкоуровневые языки, такие как C, С++ и т.д. Или я ошибаюсь? Если это так, то компаниям-разработчикам программного обеспечения придется перерабатывать свое программное обеспечение. Это время, когда вы можете начать проект, и у вас нет большой компании-производителя программного обеспечения в качестве конкурента?

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

4b9b3361

Ответ 1

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

Предположим, вы хотите разместить приложение на службе облачных вычислений Amazon EC2 - вы можете разработать его на любом языке, который вам нравится, в любой операционной системе, поддерживаемой EC2 (несколько вариантов Linux, Solaris и Windows), а затем установить и запустить ее "в облаке" на одной или нескольких виртуальных машинах, делать на выделенном физическом сервере.

Ответ 2

Из языков, о которых вы говорите, Java, PHP, Python, Ruby, Perl, безусловно, более независимы от платформы, чем C/С++ (и ASP.NET).

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

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

Лично я бы пошел на Java или Python (возможно, также Ruby), поскольку у них есть огромное количество библиотек, доступных для всех видов задач, и они очень независимы от платформы.

Ответ 3

Это очень интересный вопрос.

На конференции Lang.Next было очень интересное обсуждение этой темы, в которой участвуют авторы нескольких языков программирования (Scala, Dart, С#). В конце концов не было четкого консенсуса, но, с моей точки зрения, есть одно сообщение:

Идеальный язык для этого "облачного века" должен быть объектно ориентированным (потому что так мы понимаем и умеем моделировать мир), а также охватываем функциональное программирование.

Код в "облачном веке" почти всегда распространяется: работает на нескольких ядрах/машинах (в облачном центре) или просто на разделение клиент/сервер. И это также асинхронно. Мы не блокируем код, ожидая ответа WS. Обратные вызовы появляются в любое время.

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

Функциональное программирование помогает устранить "состояние" и гораздо лучше подходит для этой новой ситуации.

Итак, я бы сказал: в облачных вычислениях код распределяется без учета состояния, асинхронный. Функциональное программирование может помочь вам в этом. Объектно-ориентированный ориентирован почти на то, чтобы иметь возможность моделировать мир.

Я написал сообщение в блоге об этом, если вам интересно. Мне нравится С#, но на самом деле я бы сказал, что Scala, Clojure, F # может подойти еще лучше.

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

Ответ 4

Что касается языков программирования, вероятно, будет использоваться любой язык на основе браузера или сервера. Javascript, PHP, ASP, AJAX, Perl, Java, SQL.

Предположим, вам нужно внедрить новый язык программирования и BCL, предназначенный специально для работы в облаке (он не будет использоваться на клиентских компьютерах когда-либо). Он должен быть оптимизирован для облачных вычислений; простой в освоении, быстрый, эффективный, мощный, современный.

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

Большинство Поставщики облачных вычислений использовали JAVA и C-Sharp для создания облачного сервера.

Ответ 5

Зависит от того, какое облако вы хотите использовать. Если это Google App Engine, вы можете использовать Java или Python. Groovy тоже поддерживается в Google App Engine, который работает на jvm. Если вы собираетесь с Amazon, вы можете в значительной степени установить любую ОС (Amazon Machine Images), которую вы хотели бы использовать на любом сервере приложений, и использовать любой язык в зависимости от поддержки серверов приложений для этого языка. Но делать что-то подобное будет означать много технического понимания концепций масштабируемости. Некоторые из услуг могут предоставляться с полки, как службы БД, хранение и т.д. Я слышал о Ruby и Heroku (еще одна платформа облачных приложений). Но у меня нет опыта.

Лично я предпочитаю Java/ Groovy для таких вещей из-за обширных библиотек и доступных инструментов.

Ответ 6

Это всегда увлекательно. Я не облачный разработчик, но, основываясь на моих исследованиях, нет ничего существенного, кроме того, что многие из нас делали в течение десятилетий. Сервер является специфичным для платформы. Если вы хотите написать агностический код платформы для своего сервера, это нормально, но не нужно, исходя из того, кто ваш поставщик облачного сервера. Я думаю, что самая большая разница, которую я видел до сих пор, - это концепция предоставления большого набора услуг для обработки переднего клиента. передняя часть, я предполагаю, это, в основном, разработка веб-приложений или веб-приложений. Поскольку большинство браузеров достаточно хорошо справляются с LAMP vs Microsoft, тогда вы все еще вернетесь к своему вкусу месяца. Единственное отличие, которое я действительно вижу от того, что я делал 20 лет назад в высоко распределенной сетевой среде, - это протокол более высокого уровня (HTTP против TCP/UDP). Возможно, я ошибаюсь и приветствую образование, но потом снова делаю это долгое время и до сих пор не видел ничего, что считал бы революционным или существенно отличающимся, хотя языки, такие как Java, С#, Python, Ruby и т.д., Значительно проще в программе, в которой смешанная сумка, когда панель понижена, для тех, кто не знаком с написанием оптимизированного кода. PAAS и SAAS мне кажутся одними из ключей в новой технологии, но делали некоторые из них в течение 20 лет:)

Ответ 7

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

Я также звоню с другими о том, что С++ является языком низкого уровня. Да. Но у вас всегда будет больше, чем просто язык С++. Если вы отделите как Java, так и С++ от классов, которые приходят с ними, Java и С++ очень похожи. Вы должны принять какой-то жесткий критерий типа "указатели = низкий уровень, сбор мусора = высокий уровень", чтобы сделать различие. (И, конечно, вы можете сделать указатели умными и невидимыми на С++, и вы можете использовать сборку мусора на С++ тоже, если хотите.)

Ответ 8

Очевидно, что нет "лучшего" или более ценного языка обучения вообще. Какой язык вы используете, это всего лишь вопрос того, что вам нравится и что поддерживает ваш сервер. Вы не должны изучать язык, который не поддерживался бы ни сервером или, как говорят, умирает в ближайшем будущем. С другой стороны, очевидно, что в будущем будут еще лучшие языки и что они будут более полезными. Так что научитесь быстрому, удобному и любимому, и где учиться это не будет слишком большим усилием, потому что, как сказано, вы, вероятно, изменитесь менее чем за 3 года.

Я лично буду рассматривать "открытый источник" (а не фирменный), потому что Интернет открыт для всех, и open-source, скорее всего, будет поддерживаться каждым. (Это означает, что PHP в этом случае)