Vala: глюки, подсказки и приемы

Как программист, который плохо знаком с Vala, что Ваш совет номер один кому-то, кто плохо знаком с языком?

44
задан Ande TURNER 18 July 2013 в 19:49
поделиться

6 ответов

Это во многом зависит от вашего происхождения. Если вы пришли из C / C ++ / Java, лучший совет - изучить функциональное программирование. Vala поддерживает настоящие замыкания, поэтому вам следует (глубоко) научиться использовать лямбда-выражения. Лучший ресурс для этого - «Структура и интерпретация компьютерных программ» Абельсона и Сассмана. Это был вводный учебник по CS в Массачусетском технологическом институте на протяжении многих лет. Он доступен бесплатно в Интернете по адресу http://mitpress.mit.edu/sicp/full-text/book/book.html , но бумажная версия более удобочитаема. Видеолекции доступны по адресу http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/ . Наборы задач доступны бесплатно по адресу http://icampustutor.csail.mit.edu/6.001-public/ .

Помимо этого, я обычно просто старался хорошо изучить стиль программирования C #. Он похож на «Валу», но есть много книг по этой теме.

Уловки:

  • Имейте в виду, что у Vala нет сборки мусора. Он подсчитывает ссылки.
  • Имейте в виду, что Вала все еще находится в разработке. Это довольно новый язык, и он еще не достиг версии 1.0. Код, который вы пишете сейчас, может сломаться в будущем.
  • Если вы решили изучить Vala, имейте в виду, что он немного устарел с точки зрения концепций языка программирования. Он не помогает при многоядерном программировании. Он не делает ничего, чтобы помочь с управлением памятью (производительность кода во многом зависит от согласованности кеша - хорошие языки со сборкой мусора могут реорганизовать память, чтобы помочь здесь).Это оболочка вокруг C и имеет многие ограничения C (хотя и добавляет замыкания).

Кроме того, на одном из плакатов был рекомендован файл tinycc. Это разумный выбор для разработки, но для развертывания следует использовать оптимизированный компилятор, например gcc (или, если поддерживается, компилятор Intel).

36
ответ дан 26 November 2019 в 21:56
поделиться

Совет: вы можете значительно ускорить время сборки, используя TinyCC вместо gcc для разработки. Vala использует переменную CC env для выбора внутреннего компилятора, поэтому "export CC = tcc" подойдет.

9
ответ дан 26 November 2019 в 21:56
поделиться
  1. Для нескольких ресурсов это будет общий ресурс на некоторое время: Vala - GNOME Live! .
  2. Чтобы поближе познакомиться с GObject: Справочное руководство GObject .
  3. Я не знаю, откуда вы пришли, но вы найдете это полезным: Vala Quick Intro для программистов на C #

В любом случае знание C будет очень полезным. Наша команда действительно рассматривает возможность постепенного обновления и переноса на Vala.У нас есть члены с большим опытом работы в C # / C ++, и это изменение направления (со временем) будет полезно для производительности и гибкости наших продуктов.

15
ответ дан 26 November 2019 в 21:56
поделиться

Мой совет №1 - изучить GObjects. Они являются основой мощи и гибкости Vala, а изучение того, как обернуть различные библиотеки в GObject, дает вашим программам Vala доступ ко всему, что может быть связано с ними (а это очень много!).

Вот несколько ссылок, которые могут быть интересны:
* http://library.gnome.org/devel/gobject/stable/
* http://fosswire.com/post/2009/7/gobject-vala/
* http://developer.gnome.org/doc/tutorials/#gobject
* http://en.wikipedia. org/wiki/GObject

22
ответ дан 26 November 2019 в 21:56
поделиться

Вот мой совет: прочтите официальную документацию. :)

6
ответ дан 26 November 2019 в 21:56
поделиться

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

Итог: это зависит от того, почему вы его изучаете ...

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

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

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

Каким бы ни был ваш подход, удачи!

3
ответ дан 26 November 2019 в 21:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: