«Что касается языка разработки – все сайты Alibaba Group написаны на Java-стеке. Но для российского Aliexpress мы, скорее всего, выберем Kotlin — более совместимый и современный язык», – утверждает Орлов.
На каком языке написан Amazon?
Python как язык программирования в качестве фреймворка был выбран Django. Хостинг – Amazon.
На каком языке написан vkontakte?
Да, Вконтакте изначально писался на PHP. Затем наступил момент, когда производительности языка стало не хватать (я говорил об «узких» местах выше) и специалисты Вконтакта создали свою собственную версию PHP. . Аналогичное решение есть и у Фейсбука, который тоже был написан на PHP.
На каком языке написан Excel?
Начиная с 1993 года, в состав Excel входит Visual Basic для приложений (VBA), язык программирования, основанный на Visual Basic, позволяющий автоматизировать задачи Excel.
На каком языке записываются Web страницы?
JavaScript — это один из самых популярных и мощных языков программирования, используемых для разработки веб-сайтов. JavaScript является исключительно полезным, так как этот язык может помочь вам в создании коммуникации для сайта.
5 популярных игр и их языки программирования
На каком языке написан Pinterest?
Написан на Python и Django. Используется шардинг, БД разбивается при достижении 50% от вместимости.
На каком языке написан ебей?
Dropbox, eBay и Spotify используют C-программирование, а вся ОС Linux полностью написана на C.
На каком языке написан Avito?
Коммерческий | да |
Тип сайта | сайт объявлений |
Регистрация | обязательная |
Язык(-и) | русский |
На каком языке написан mail ru?
Регистрация | Обязательна для некоторых сервисов |
Язык(-и) | Русский |
Посещаемость | 57,6 миллиона человек (TNS, февраль 2021) |
Владелец | Mail.ru Group |
На каком языке был написан Facebook?
Facebook написан на C++ и PHP (HHVM). Благодаря этому сайту Марк Цукерберг в 23 года стал самым молодым миллиардером планеты.
На каком языке написан браузер?
Первая версия Google называлась BackRub и была написана на Java и Python. Сейчас фронт-энд Google написан на C и C++, а его известные поисковые роботы — на Python.
На каком языке написан Телеграм?
Почему MS Excel иногда называют табличным процессором?
Табличным процессором или электронной таблицей называется прикладная программа, предназначенная для хранения данных различных типов в табличной форме и их обработки. Табличные процессоры обеспечивают работу с большими таблицами чисел.
На каком языке пишут современные сайты?
- PHP. В его основе — самый простой язык разметки, HTML. .
- Python. На русском его часто называют «питон». .
- Ruby. На русском часто его называют «руби». .
- ASP. Этот язык разработан корпорацией Microsoft. .
- JavaScript. Принцип «яваскрипт» немного отличается от прочих языков программирования. .
- Perl.
На каком языке лучше писать сайт?
Несомненно самый популярный язык для веб-программирования — это PHP, на нём написано большинство сайтов находящихся в сети. Он не очень сложен и при полном отсутствии навыков программирования можно вполне быстро его освоить, а так же начать писать свои веб-приложения.
Какие есть языки программирования веб?
- HTML. Это язык разметки гипертекста образованный от английской аббревиатуры «Hyper Text Markup Language». .
- PHP. Это скриптовый серверный язык образованный от английского «PHP: Hypertext Preprocessor» — препроцессор гипертекста, служит для создания веб приложений. .
- FLASH. .
- WAP. .
- ASP. .
- PERL. .
- С++ .
- JavaScript.
Источник: shnurovik.ru
На каких языках программирования пишут приложения?
Если Вы планируете или уже решили стать мобильным разработчиком. Первое с чем Вам придется столкнуться, это выбор платформы и языка на котором Вы планируете писать программы, но для начала, давайте узнаем на каких языках программирования пишут приложения.
Какие есть языки программирования и как их выбрать?
От того какую платформу разработки вы выберете, будет зависеть то, какой язык Вы будете изучать. Чуть ниже приведен список всех языков для iOS и Android, перечислены их преимущества и недостатки, для того, чтобы Вы могли оценить каждый из них, и выбрать наиболее подходящий для Вас.
Однако существуют и исключения. Существуют кроссплатформенные языки, которые позволяют писать код как для приложений на Android, так и iOS.
Как недостаток можно выделить то, что программы написанные на подобных языках будут значительно менее быстро работать и снизят продуктивность работы с системой, в отличии от программ написанных под определенную операционную систему.
На каком языке пишут приложения для Android?
В первую очередь ответим на вопрос о том, какие языки программирования для приложений Android подходят больше всего:
- Java;
- HTML5 / JavaScript;
- C#;
- Kotlin;
- C / C++;
- BASIC;
- Python.
Разработчики Anroid на данный момент более востребованы в мире IT, в связи с тем что смартфоны на базе Anroid на сегодняшний день занимают две трети рынка мобильных устройств.
Обучение ниже перечисленным языкам позволит вам начать писать программный код для игр, приложений и программ. А для того чтобы вам было проще выбрать, мы составили перечень их преимуществ и недостатков.
Java
Часто именуемый как официальный язык операционной системы Android, Java-код на сегодняшний день считается одним из самых востребованных среди Android разработчиков. Почти все языки мобильного программирования строятся на Java, так как он обладает наиболее широким функционалом в мобильном программировании.
Как бы Вам не хотелось, но если вы решили писать код для Android, познакомиться с этим языком Вам придется в любом случае.
В случае мобильного программирования данный язык, поддерживается фреймворком Android Studio. Он является типом программного обеспечения, т.н. средой разработки. Ознакомиться с работой в котором вам предстоит в любом случае если вы решили программировать под Android. В этом вам так же поможет набор инструментов Android SDK.
Благодаря тому, что руководства, платные и бесплатные библиотеки Java найти не сложно, имея базовый набор знаний, создание программ на этом языке не составит особого труда.
Плюсы:
- Основа всех языков мобильного программирования, обучение которому упростит последующее изучение языков;
- Поддерживается Android Studio и набором инструментов Android SDK.
Минусы:
- Сложный в освоении.
HTML5 / JavaScript
Чаще всего HTML, CSS и JavaScript используется для разработки веб-приложений. Однако есть и случаи исключения, благодаря специальным средам разработки таким как PhoneGap, Adobe Cordova, React Native, Ionic, Sencha программисты которые пишут код на HTML, CSS и JavaScript смогут создавать кроссплатформенные программы.
Плюсы:
- Позволит создавать кроссплатформенные приложения;
- Позволит создавать веб-приложения;
- При должном наборе знаний, дает возможность верстать сайты.
Минусы:
- Нативные приложения получатся менее качественными, т.к. изначально они не были рассчитаны на нативную разработку.
C#
Считается своего рода улучшенной версией Java с исправленными недостатками и более широким и удобным функционалом.
Отлично сочетается с моделированием в Unity 3D, делая ваши возможности в мобильной разработке практически безграничными позволяя создавать не только программы, но и игры.
Благодаря функции сборки мусора (garbage collection) появляется возможность удаления объектов не востребованных в приложении.
Плюсы:
- Улучшенная версия Java;
- В сочетании с Unity 3D позволяет создавать игры;
Минусы:
- Для работы с ним необходимо обязательно знать Java.
Kotlin
Отличный язык, который так же как и C# в сочетании с Java становится еще лучше, основным же его преимуществом является полное отсутствие недостатков что позволяет создавать программы под Android практически беспрепятственно.
Компиляция в байт-код JVM, как и у Java, дает Вам возможность перенести написанный раннее код на Java в Kotlin и убрать шаблонный код «boilerplate code» что сделает синтаксис более читабельным.
Официально он был представлен компанией Google в 2017 году, позиционируя себя как следующий официальный язык написания приложения под Android после Java.
В связи с его относительно недавним появлением, на данный момент очень востребован т.к. разработчиков хорошо знакомых с Kotlin не так уже и много. Благодаря чему, найти работу при должном знании Kotlin Вам не составит труда.
Обучение ему займет у Вас не так много времени как изучение Java, и будет гораздо более простым, однако для его понимания знание Java опять таки является обязательным.
Плюсы:
- Востребованный среди программистов;
- Более прост в освоении чем Java;
- Компиляция в JVM;
- Совместим с Android Studio.
Минусы:
- Обязательно знание Java.
C / C++
Предоставляя SDK и NDK среды разработки в Android Studio, Google дает возможность разработчикам на C и C++ создавать нативные мобильные приложения. Однако они не приспособлены к полноценной разработке приложений, а служат лишь для создания библиотеки, которую в дальнейшем с помощью Java можно будет подвязать к основному коду, что значительно сократит время написания кода.
Код написанный на C и C++ запускается через само мобильное устройство, что дает больше контроля такими элементами как сенсоры, жесты, память и прочие.
Сами по себе достаточно не просты в изучении и применении, в связи с тем, что изначально не были предназначены для разработки именно мобильных приложений.
Плюсы:
- В связке с Java позволяет сократить код, что ускорит работоспособность программы.
Минусы:
- Непростой в освоении;
- Не позволяет полноценно создать приложение, а всего лишь подвязывать библиотеки к приложению.
BASIC
Отличный вариант для начинающих программистов в силу своей простоты. Однако в связи с тем что он обладает весьма ограниченным функционалом, сложные программы для устройств на базе Android на нем создать не получится. Писать на нем можно только в специальном фреймворке B4A, с Android Studio к сожалению, он не совместим.
Плюсы:
- Прост в освоении.
Минусы:
- Не совместим с Android Studio, Unity, и Xamarin;
- Весьма ограниченный функционал;
- Использование B4A не может быть бесплатным.
Python
Несмотря на то, что Android не поддерживает Python, его использование не представляется исключением для создания Android-приложений. Так как с помощью фреймворка Kivy можно скомпилировать код написанный на чистом Python в практически любой требуемый формат.
Наличие большого количества различных библиотек позволяет строить на нем нативные интерфейсы, что значительно улучшает функциональность приложений.
Плюсы:
- Подходит как для нативных, так и для веб-приложений;
- Позволяет строить нативные интерфейсы;
- Легко читаемый синтаксис;
- Прост в изучении.
Минусы:
- Не официальный язык Android и не поддерживает его без фреймворка Kivy;
- Не особо востребованный.
На каком языке пишут приложения для iOS?
На Android и iOS код пишется по-разному и соответственно на разных языках, но разница на самом деле не столь существенная. Давайте разберем список основных языков на которых пишут приложения для iOS:
Количество разработчиков, которые знают языки программирования iOS приложений значительно меньше чем тех кто умеет писать под Android, что делает их более востребованными на рынке труда.
Swift
Swift — это прежде всего официальный язык написания кода для iOS, представленный Apple еще в 2014 году. Позаимствовав большую свою часть из Objective-C и C++, стал невероятно функциональным и простым для изучения.
Помогает избегать ошибок в коде еще на этапе разработки приложений благодаря строгой типизации объектов.
Обладает весьма удобным функционал, который делает разработку приложений для iOS простым и увлекательным процессом, среди которого можно отметить множественное возвращение значений, замыкания и дженерики. Остается наиболее востребованным языком разработки приложений для iOS даже в 2019 году т.к. большинство iOS разработчиков, предпочитают именно его.
Плюсы:
- Упрощенная навигация;
- Прост в изучении;
- Легко читаемый синтаксис;
- Взаимодействие с Objective-C;
- Поддержка динамических библиотек.
Минусы:
- Частые обновления требуют регулярного изучения нового материала;
- «Мост» позволяющий взаимодействовать с Objective-C замедляет процесс сборки программы.
C#
С его помощью можно писать не только для Android, но и для iOS, что позволяет создавать кроссплатформенные приложения.
Плюсы:
- В сочетании с Unity 3D позволяет создавать игры;
Минусы:
- Для его изучения необходимо обязательно знать Java.
- В связи с тем, что C# является кроссплатформенным, приложения на нем будут не столь оптимизированными, как приложения написанные на официальных языках Apple.
Objective-C
Первый язык программирования созданный для разработки специально для устройств на базе iOS, таких как iphone, ipod, ipad. Предшественник Swift, который до сих пор часто используется разработчиками.
Код приложений написанных на нем был надстройкой над языком C, что обязало программистов, которые пишут на нем приложения знать и язык C.
Так же, код на нем пишется не только для мобильных устройств, но и для macOS.
Плюсы:
- Большое количество документации, которая упрощает изучение;
- Совместимость со Swift.
Минусы:
- Устаревший, более сложный в освоении чем Swift, в связи с чем в ближайшие несколько лет перестанет использоваться;
- Сложный синтаксис;
- Низкая производительность в сравнении с Swift;
C++
C++ позволяет программировать под iOS. Обработка больших объемов данных позволяет решать сложные логические задачи, модули и писать сложные алгоритмы.
Однако полностью написать на C++ приложение не удастся, из-за чего требует совместной работы с Objective-C.
Плюсы:
- Поддерживает объективно-ориентированное программирование, процедурное программирование и обобщенное.
- Улучшает производительность при работе с Objective-C.
Минусы:
- Не предназначен для полноценной разработки;
- Непростой в изучении.
Заключение
Как вы уже поняли, для разработки приложений можно использовать практически любой язык программирования, каждый из которых имеет свои преимущества и недостатки. Время потраченное на разработку мобильных приложений на каждом языке также может колебаться в достаточно широком диапазоне.
В этой статье мы собрали самые популярные языки для разработки программ на Android и iOS. Рассказав о том, какие из них больше подходят начинающим программистам, а какие меньше.
По мнению нашей редакции, правильным решением будет начать освоение языков мобильного программирования с Java, научившись работать с которым вам будет проще разобраться в остальных, т.к. Java является их основой.
Однако, помимо перечисленных языков программирования, вы можете осуществлять создание приложений в кроссплатформенном конструкторе мобильных приложений. Навыки разработки для работы в котором не являются обязательными.
Источник: blog.mo-apps.com
Великий шёлковый путь, или локализация Aliexpress Россия. Часть 1: Frontend, Backend и мобильные приложения
Представьте, что вы работаете в одном из подразделений глобальной компании, при этом ваша задача — сделать счастливыми ваших локальных пользователей, и нанять команду, которая собственно будет эту задачу решать. Это история про локализацию платформы Aliexpress для российских покупателей и продавцов.
С чего всё началось
Делать хорошие локальные продукты из глобального офиса очень сложно. Почему? Представьте, что ваша компания открыла офис в Северной Африке, и там работает примерно 0,2-0,4% от общего числа ваших сотрудников. И в один прекрасный день они говорят, что ваш продукт не подходит для региона.
Ни один человек из глобального офиса, который даже не является пользователем продукта для Северной Африки, сделать с этим ничего не сможет. Очевидное решение — локализация.
Как мы локализовали систему рекомендаций и полюбили китайскую инфраструктуру
Забрать на себя 400 сервисов одновременно невозможно, поэтому по мере готовности мы забирали себе отдельные сервисы и всю ответственность за их развитие и поддержку, в этот момент китайские коллеги прекращали наносить сервису улучшения и как-либо о нём заботиться.
Кроме того, есть сервисы, которые нельзя просто передать от одной команде другой — их нужно написать с нуля. Так, например, произошло с поиском — российские пользователи и русский язык настолько сильно отличаются, что для них нужен отдельный сервис.
А теперь давайте подробнее.
Мобильное приложение
Сейчас в сторах только локальное приложение, разработанное для пользователей из России и стран СНГ. Но долгое время приложений Aliexpress в сторах было два.
Почему мы решили писать своё?
Во-первых, в приложении, куда контрибьютят команды из 8 стран, сложно вносить изменения. Всё согласовать, встать в очередь, успеть до код-фриза (а они сопровождают каждую из 4 распродаж + новогодние каникулы) — долго, сложно, демотивирующе.
Во-вторых, основной актив любой коммерческой команды — это её клиенты. Порядка 82% аудитории пользуются маркетплейсом с мобильных устройств — в приложении или мобильной версии сайта. Работать с ними через глобальное приложение — это бизнес-риск. И, кстати, именно поэтому — чтобы не потерять и не расстроить — мы долго и нежно переманивали аудиторию в новое приложение, предлагая фичи, которых нет в глобал аппе.
Немного о технологиях Alibaba
У приложений Alibaba есть много общих компонентов, которые позволяют экономить силы на разработку и не писать одно и то же несколько раз. Среди них несколько Backend Driven UI фреймворков разной степени специализированности.
Ещё есть движки типа React-native. Например, собственный open source движок Weex. Он позволяет с помощью команд бэкенда собрать нативную форму, с которой можно дальше работать. Это крутая технология, и она пользуется популярностью, потому что позволяет уменьшить приложение.
Проблема, с которой мы сталкиваемся — огромное количество кода. Чтобы локализовать всё приложение, понадобится слишком много времени. Быстрее создать своё.
Что делаем мы
При локализации мы постепенно переписываем кусочки кода — в основном на Swift и Kotlin, а не на Objective-C и Java, как в Китае. Так уже переписано примерно 80% user journey (это основные экраны, которые юзер проходит для совершения покупки: главный экран, поиск, страница товара, корзина, чекаут и список заказов).
Кроме того, мы создали свой Backend Driven фреймворк и постепенно начинаем использовать его вместо фреймворка Alibaba. И благодаря этому сделали много важных улучшений.
Из последнего: приложение Aliexpress Россия релизится раз в неделю. В оригинальном так не получится, потому что нам надо согласовывать все изменения с огромным количеством команд.
В итоге продукт приобрел тот внешний вид, к которому привыкли российские пользователи: на первых двух фото наше приложение, а на последних — глобальное.
Frontend
Следующая важная часть, которую нужно локализовать — фронтенд. Что тут нужно учитывать?
Во-первых, использование интернета в Китае и в России выглядит совершенно по-разному. Китай перепрыгнул эпоху компьютеров, и у многих китайцев сразу появились смартфоны, полностью заменяющие ПК.
Во-вторых, у любого интернет-магазина в России есть два очень важных клиента — это Яндекс и Google. Они приносят площадке трафик, и, разумеется, ожидают, что сайт будет быстрым, чтобы можно было одновременно загрузить много вкладок. Кроме того, им нужен Service Side Rendering.
Выбор стека, который мы использовали, довольно понятный, не будем разбирать его подробно:
- React + TypeScript, Node.js для SSR;
- Микрофронтенд, компонентная архитектура с изолированными виджетами;
- Backend driven design с помощью единой технологии — Mixer (9-й по счету);
- Метрики и разметка для аналитики встроена в платформу.
Лучше остановимся на итогах.
Мы переписали основные экраны (только до чекаутов пока не добрались). И если в приложении пришлось менять дизайн для улучшение конверсии, то на сайте — просто выбрать другой стек.
Это улучшило конверсию только за счет прироста скорости. Сами параметры, кстати, радуют, но с доставкой до клиента будем работать.
Backend
Идея довольно проста: нам нужно контролировать разработку и функциональность.
Во-первых, это дешевле, потому что когда Aliexpress Global, одна из самых крутых компаний в мире, занимается чем-то похожим на заказную разработку для российского рынка, получается слишком дорого.
Во-вторых, когда программист физически не может пользоваться своим продуктом, он не понимает всех потребностей клиента.
Подход к локализации бэкенда у нас довольно простой. Сперва мы быстро делаем Fork/Redeploy, при этом правим зависимости и забираем на себя ответственность за продукт.
Затем начинаем править логику приложения, закапывать legacy, убирать код, который предназначен для других стран. И, наконец, мигрируем софт в нашу инфраструктуру (но это не обязательно).
Backend-технологии Alibaba
Большая часть технологий доступна в Alibaba Cloud. Есть небольшая неразбериха, связанная с тем, что технологии часто называются не так, как обозначено во «внутренностях» компании, но это не критично.
Наш внутренний кластер снаружи называется Alibaba Cloud Container Service for Kubernetes, и все приложения там живут в собственном контейнере, который называется Pouch.
Ещё есть две очень крутые технологии: RTP (Prediction Engine) и TPP (Taobao Personalization Platform) — которые доступны только внутри компании. По виду — это serverless приложения, где ты просто деплоишь абстрактный алгоритм и абстрактные данные, и они как-то сами расползаются по кластеру. Ничего похожего вне Alibaba мы не видели.
Основной протокол общения серверов — это HSF (High-speed Service Framework). Это сильно поправленный open source, внутри которого можно условно поставить галочку, и он опубликуется наружу с помощью протоколов Top/Mtop (B2B и B2C соответственно).
Что используем мы
Здесь всё довольно просто: K8S, микросервисы, GRPC. Языки мы используем практически все (Kotlin, Java, C#, Go и так далее), потому что так проще нанимать людей.
Это только первая часть рассказа о локализации. В следующей мы рассказываем о сервисах, которые мы полностью переписали.
Источник: tproger.ru