LINUX.ORG.RU
ФорумTalks

JavaScript выбран в качестве основного языка разработки приложений для GNOME


0

3

На состоявшемся на днях съезде GNOME Developer Experience Hackfest команда разработчиков GNOME рассмотрела вопрос выработки рекомендаций по выбору языка программирования для разработки приложений, создаваемых для работы в GNOME. Мотивом определения рекомендованного по умолчанию языка стали участившиеся вопросы начинающих разработчиков о том, какой инструментарий надо использовать при написании приложений для GNOME. До настоящего момента однозначного ответа на этот вопрос не было, но теперь команда разработчиков GNOME решила стандартизировать JavaScript как язык для написания пользовательских приложений GNOME, одновременно рекомендуя язык Си для написания системных библиотек.

Съезд разработчиков GNOME состоялся перед открытием конференции FOSDEM 2013 в Брюсселе. По вопросу выбора единого языка для разработки приложений GNOME было достигнуто обоюдное согласие участников обсуждения, поскольку единый язык упрощает разработчикам подготовку документации и обмен знаниями с новичками, а также облегчает задачу по интеграции приложений, написанных для десктопа с использованием предоставляемой проектом инфраструктуры.

Выбор JavaScript обусловлен несколькими факторами:

* JavaScript уже хорошо поддерживается в GNOME 3, так как GNOME Shell использует его для реализации пользовательского интерфейса и дополнений;

* Наблюдается большая работа по оптимизации производительности JavaScript, его развития как встраиваемого и не зависимого от фреймворков языка;

* Имеется успешный опыт применения JavaScript для аналогичных целей в таких системах, как Windows 8, Firefox OS, webOS, Tizen и KDE, что, как надеется команда разработчиков, упростит работу новых членов команды GNOME;

* JavaScript прекрасно отвечает потребностям GNOME в динамическом и высокоуровневом языке;

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

Разработчики GNOME отмечают, что выбор JavaScript по умолчанию вовсе не означает отказ от поддержки других языков. Разработка существующих биндингов и обеспечение совместимости с различными языками программирования будет производиться как и раньше. «Очень важно понять, что данное решение направлено на выдвижение на первый план JavaScript, а также связанных с ним биндингов, инструментария и документации, с целью достижения нового уровня качества, но это решение ни в коем случае не означает забвения биндингов для других языков», подчеркнул Рейттер.



Последнее исправление: Ok (всего исправлений: 1)
Ответ на: комментарий от slackwarrior

к концу рабочего дня даже в подсвеченной IDE строчке кода с англицким описанием ошибки бывает дооолго тупишь в поисках косяка, а тут какойто eyeball search

Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)
Ответ на: комментарий от slackwarrior

Вместо того, чтобы объявить хрень в одном месте, её надо объявить в двух. Если редактор делает это за тебя — прекрасно, но если бы в языке такой байды не было, то и делать лишнюю фичу в редакторе бы не понадобилось.

PolarFox ★★★★★
()
Ответ на: комментарий от PolarFox

4.2 в нормальных языках компилятор предоставляет api для синтаксического анализа кода, без необходимости его запускать

Deleted
()
Ответ на: комментарий от PolarFox

Вместо того, чтобы объявить хрень в одном месте, её надо объявить в двух.

Кому надо, а кому - не каждый раз :) Далеко не все нужно тащить в хедер из того, что можно туда затащить.

slackwarrior ★★★★★
()
Ответ на: комментарий от PolarFox

Если для редактирования ЯП нужен навороченный редактор, то проблема в ЯП.

Ох уж мне эти догмы ;) Во-первых в самой идее ничего плохого нет, ведь навороченный редактор - это всегда круто. Во-вторых достаточно иметь подключаемый движок для редакторов, который абстрагирует парсер, семантический анализ и вывод типов, позволяя просто спросить «что находится в этой строке и колонке?», получить ответ «переменная типа Array» и переспросить «дай-ка мне список его методов, текст форматируй вот так: ...».

quiet_readonly ★★★★
()
Последнее исправление: quiet_readonly (всего исправлений: 1)
Ответ на: комментарий от PolarFox

бгг, как ты данные из отдельно бинарника передавать будешь, через pipe? тото ваш линукс такой тормозной

Deleted
()
Ответ на: комментарий от Deleted

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

PolarFox ★★★★★
()
Ответ на: комментарий от Deleted

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

Кстати да, из-за этого познакомился с QML только недавно, но так и не заставил себя писать на нём что-то значимое. Сейчас сижу и думаю как сделать для редактора javascript вывод типа возвращаемого функцией значения (функции тут напоминают шаблоны C++, т.е. возвращаемый тип зависит от типов аргументов). Может после этого смогу кодить.

quiet_readonly ★★★★
()
Ответ на: комментарий от PolarFox

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

оно какбы быстро, но в большом проекте можно словить затейливейшего глюка - когда баг пофикшен, но при запуске все осталось по старому

Deleted
()
Ответ на: комментарий от Deleted

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

У це тоже есть объектные файлы.

PolarFox ★★★★★
()
Ответ на: комментарий от Deleted

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

Да ладно, это всё мелочи реализации. К тому же такой вариант намного лучше, чем visual studio 2008 для C++, где все ошибки кидались только в лог, причём распечатка STL'евского типа занимала 10 строк, а к ошибкам добавлялись бесполезные варнинги про «устаревший» fopen.

В эклипсовой java-машине всё очень хорошо сделано, на 2013 год. В clang тоже хорошо, по-своему.

quiet_readonly ★★★★
()
Ответ на: комментарий от PolarFox

есть и есть кеш заголовков тотже pch в vs который пухнет и глючит, но это все костыли 8)

Deleted
()
Ответ на: комментарий от quiet_readonly

да я собственно и не против того как оно в жабке сделано, там других косяков куча

Deleted
()
Ответ на: комментарий от Deleted

а зачем? или у тебя синдром школоты когда хочется наваять свой кулькацкерский интерфейс?

У меня есть фантазия и есть средства её воплощения. А у тебя наблюдается скудомыслие и синдром вахтёра.

чем более интерфейс софта отличается от стандартного тем хуже у этой программы функионал

Функ и что? Нет, ты действительно не понимаешь, что интерфейс может совершенно не зависеть от реализации?

border-radius
()
Ответ на: комментарий от border-radius

У меня есть фантазия и есть средства её воплощения.

а почему пользователи должны страдать из-за твоих диагнозов?

интерфейс может совершенно не зависеть от реализации?

ты настолько умен что не понимаешь объективной сути закономерностей?

Deleted
()
Ответ на: комментарий от Deleted

а почему пользователи должны страдать из-за твоих диагнозов?

Марш на венду, там дядя Билли всё за тебя решил, в том числе и какого цвета должна быть кнопка "Пук".

ты настолько умен что не понимаешь объективной сути закономерностей?

Здесь нету никакой закономерности. Более того, скажу тебе по большому секрету, UI и бэкэндом могут заниматься совершенно разные люди.

border-radius
()
Ответ на: комментарий от border-radius

А у тебя наблюдается скудомыслие и синдром вахтёра.

Пока что вы только скандалите с окружающими. Ну и чушь порете, чисто с технической точки зрения: говорите, что HTML5+CSS лучше всех тулкитов, хотя у них до сих пор нет ни методов асинхронного запуска какой-либо задачи, ни изменения интерфейса без перезагрузки всего HTML+CSS+JS либо манкей-патчинга.

Может вам просто место в игноре? Или вы успокоитесь и перестанете делиться тем, как вы любите себя и как ненавидите окружающих?

quiet_readonly ★★★★
()
Ответ на: комментарий от border-radius

Марш на венду

на гном, на самом деле, ты просто не читал HIG

Здесь нету никакой закономерности.

Ты суслика видишь? Нет. А он в твоей голове вместо всего остального.

Более того, скажу тебе по большому секрету, UI и бэкэндом могут заниматься совершенно разные люди.

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

Deleted
()
Ответ на: комментарий от quiet_readonly

на самом деле для js еcть worker и асинхронность там на базе сообщений вполне реализуется, только идиотская - через сериализацию (в браузерах).

а интерфейс на языке гипертекстовой разметки - это да, маразм 8)

Deleted
()
Ответ на: комментарий от Deleted

На хтмле можно и стандартные убогие кнопочки использовать. Или стандартную общесистемную css-ку подключить. Жтк3 и кути5 к этому и стремятся.

PolarFox ★★★★★
()
Ответ на: комментарий от quiet_readonly

у них до сих пор нет ни методов асинхронного запуска какой-либо задачи

Я сейчас сказал сугубо об UI-части и взаимодействии с бэкэндом через события или вебсокеты, но если нужно запустить задачу асинхронно непосредственно в JS, то, пожалуйста, WebWorkers к вашим услугам.

ни изменения интерфейса без перезагрузки всего HTML+CSS+JS либо манкей-патчинга.

Неправда. Интерфейс изменяем динамически. Как любое содержимое DOM, так и стили.

Может вам просто место в игноре?

Мне всё равно.

border-radius
()
Ответ на: комментарий от PolarFox

для кнопочек достаточно qml или xul и кучи других аналогов, а для песца который ни мышкой ни клавиатурой а только правым полужопием по тачскрину рулится нужен html, зато «красиво» с точки зрения школоты

Deleted
()
Ответ на: комментарий от PolarFox

тыб хотябы википедию почитал, или в реальном мире посмотрел (ну или снял галочку «показывать тесктовые подписи»)

Deleted
()
Ответ на: комментарий от PolarFox

затем что когда у тебя травма шеи не нужно вместо корсета использовать дилдо, так и для layout тебе html также «удобен» будет 8) но ты видно любитель пожощще.

Deleted
()
Ответ на: комментарий от PolarFox

Интерфейс — это просто куча текста
В хтмле есть ещё и <img>, ы?

свой диагноз ты можешь узнать в ближайшей дурке

Deleted
()
Ответ на: комментарий от border-radius

а почему пользователи должны страдать из-за твоих диагнозов?

Марш на венду, там дядя Билли всё за тебя решил, в том числе и какого цвета должна быть кнопка «Пук».

Ошибаетесь, и у Gnome, и у KDE есть свои UI Guideline, где весьма подробно расписано как интерфейс должен выглядеть и как себя вести. И при разработке в этих проектах следование им обязательно.

hippi90 ★★★★★
()
Ответ на: комментарий от Deleted

Да, это не интерфейс, это демка. После которой становится ясно: любые кнопочки CSS по плечу, и отказываться от такого мощного UI-средства причин нет, если это не консоль, конечно же.☺

border-radius
()
Ответ на: комментарий от hippi90

и у Gnome, и у KDE есть свои UI Guideline, где весьма подробно расписано как интерфейс должен выглядеть и как себя вести.

Но при этом под GNOME и KDE есть уйма вариантов кастомного оформления интерфейса.

border-radius
()
Ответ на: комментарий от PolarFox

у этих программ вообще нет layout как такового, а вот код doking-а (для редактора и файлового менегера) на html это будет анекдот, но тебе нравится пожоще

Deleted
()
Ответ на: комментарий от border-radius

После которой становится ясно: CSS эпический костыль для убого html

именно так и есть, сейчас в твоем мирке двинуть компонентик можно подрыгав dom, поменяв css или поменяв координаты компонента, в итоге получается не приложение а пипец из глюков и багой

в тоже время для тебя все еще проблема сгенерить динамическую форму примерно такого вида http://www.adempiere.com/images/a/a7/4colLayout.png

когда на html пишут такое то сразу понимаешь где ад для программиста, причем добровольный 8)

Deleted
()
Ответ на: комментарий от border-radius

Неправда. Интерфейс изменяем динамически. Как любое содержимое DOM, так и стили.

уже писал, что

ни изменения интерфейса без перезагрузки всего HTML+CSS+JS либо манкей-патчинга.

Собственно я упомянул манкей-патчинг из-за того, что это первейший источник багов. Зачастую невовремя вылетающее исключение или невовремя вызываемое действие могут поломать интерфейсы, основанные на манкей-патчинге DOM.

quiet_readonly ★★★★
()
Последнее исправление: quiet_readonly (всего исправлений: 1)
Ответ на: комментарий от PolarFox

Ты точно умен, эта хрень глючит http://storage5.static.itmages.ru/i/13/0205/h_1360014813_3526598_a48dd0818a.png и всегда будет глючить, просто потому что html делался не для этого, понятно что тем кому маркетологи съели остатки мозга это не понять, но на вас свет клином не сошелся 8)

Deleted
()
Ответ на: комментарий от Deleted

не приложение а пипец из глюков и багой

Говори за себя, окда?

в тоже время для тебя все еще проблема сгенерить динамическую форму примерно такого вида http://www.adempiere.com/images/a/a7/4colLayout.png

И не такую туфту генерили.

когда на html пишут такое то сразу понимаешь где ад для программиста, причем добровольный 8)

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

border-radius
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.