Deseja iniciar o desenvolvimento do Ubuntu (e da maioria das distribuições Linux em geral), o que é adequado? Python ou Vala? [fechadas]


14

Sou formado em ciência da computação e aprendi linguagens como C, C ++, C # e Java. Embora eu tenha mais experiência com Java. Eu quero desenvolver para Linux e preferiria desenvolver para GNOME, estou confuso entre escolher um do Python e Vala.

Depois de passar por alguma documentação sobre o Vala nas páginas do GNOME Live, parece-me mais familiar em comparação com o Python, que é bastante diferente sintaticamente em comparação com a maioria dos idiomas que aprendi durante minha graduação. Enquanto a curva de aprendizado em Vala me parece menor. Então, qual idioma devo escolher para iniciar o desenvolvimento, que tem melhor suporte em várias distribuições. Um IDE recomendado para a linguagem sugerida será apreciado.

Obrigado.


1
Algo que ninguém mais neste tópico sugeriu: você deve aprender Python porque é diferente do que você já conhece. Isso o expõe a uma maneira de pensar diferente da que você aprendeu ao programar tarefas de classe exclusivamente em linguagens do tipo C. Além disso, a sintaxe não é que diferente. Tente substituir {por :e, em seguida, excluir todo o }código Java, e ele pode começar a parecer muito mais com Python.
Ryan C. Thompson

Respostas:


18

Além do argumento antigo sobre qual linguagem de programação é melhor, na qual não vou entrar (mesmo que o Python seja a melhor coisa desde o pão fatiado), eu diria que ambos são igualmente adequados para escrever o Apps for the Gnome desktop.

Pygtk, as ligações Python GTK, foram usadas para criar aplicativos como PiTiVi , Deluge , emesene , Exaile , Jokosher e WingIDE .

Não consigo encontrar uma lista de aplicativos escritos em Vala (embora eu conheça o Shotwell ). Mas como ele foi projetado para ser uma linguagem para o destnop do Gnome, você pode ter certeza de que não ficará desapontado com a integração do GTK / GObject.

Experimente os dois e use o que você mais gostar. Ambas são excelentes ferramentas para criar aplicativos GTK. Você também pode querer dar uma olhada no código Some Vala e no código Some Python .


6

Eu recomendaria Vala. Você parece preferir linguagens orientadas a objetos e o Vala é orientado a objetos por design. O Python também possui recursos de POO, mas eles não são tão integrados nas outras partes - é por isso que o Ruby foi criado.

O Python é considerado mais fácil de aprender e usar, mas é uma linguagem muito original, com lógica e filosofia próprias; Acho que Vala será mais fácil de aprender, porque é muito parecido com C # e Java.

A escolha também depende dos aplicativos que você vai escrever. O Python é bom para scripts e prototipagem rápida, mas suas ligações GTK atualmente são ruins e muito lentas. O idioma em si é cerca de 40 vezes mais lento que o C em vários benchmarks. Vala, por outro lado, é um pré-processador C, portanto, os programas nele escritos são executados muito rapidamente e foram projetados para serem usados ​​no GNOME.


1
O que é 'ruim' nas ligações GTK para Python? Além disso, não acho que Ruby tenha sido criado como uma reação ao Python! Além disso, concordo com a sua resposta.
precisa saber é o seguinte

Os idiomas interpretados são obviamente mais lentos, que é uma troca de design. Para escrever código python rápido, você escrever uma aplicação python trabalho, perfil as partes que precisa otimização e módulos de gravação python para quem parte em uma linguagem compilada, como C.
Egil

@ dv3500ea: na verdade, " Eu queria uma linguagem de script mais poderosa que Perl e mais orientada a objetos que Python. " Não que eu necessariamente concorde, não vejo como o OOP não está integrado ao Python.
André Paramés

1
Enquanto o próprio Python é lento, sua velocidade dificilmente importa na maioria dos casos. A parte realmente lento de uma GUI vai os gráficos reais, que ainda ser tudo C.
Brendan Longo

5

Eu sugiro que você comece com Python , pois é muito fácil criar aplicativos PyGTK. Este livro gratuito é um ótimo recurso para o desenvolvimento de aplicativos Gnome com Python.

Vala também é ótimo, mas você se sentirá mais confortável com o Python como iniciante.

Mais tarde, depois de se familiarizar com a filosofia do desenvolvimento de aplicativos Unix, você poderá criar partes do seu aplicativo em python, vala ou Javascript, conforme achar necessário.

Eu diria, comece com PyGTK (PyGI) para ter uma ideia da plataforma e, em seguida, aprenda Vala e Javascript. Javascript será ENORME na área de trabalho do Gnome. Quero dizer ENORME.

A ligação para o GTK, eles são os mesmos para todos os aplicativos agora. Você usará as mesmas ligações C de qualquer idioma usando o Gobject Introspection .


Estou ansioso para que o JavaScript assuma o controle do Gnome ou de qualquer ambiente de área de trabalho (o que ele já deixa deixando uma grande impressão no Gnome Shell).
precisa saber é o seguinte

1

O Python possui muitas boas documentações / livros. Para Vala, eu não sei.


0

Eu sugeriria o wxPython (wxWidgets) junto com o Boa Constructor ou o Aptana Studio 3 (PyDev). Python é uma linguagem fantástica para qualquer um usar (até crianças - veja "Snake Wrangling for Kids"). Ao codificar em Python / wxPython, você escreverá um código que se integra perfeitamente ao Linux, mas que pode ser portado com um esforço trivial para o Windows e o OS / X também.


0

Use o que você estiver mais confortável para programar. Se você vai doar código (por exemplo, escrevendo software livre), você também pode se divertir. Como outros já disseram, os dois idiomas são ótimos para o desenvolvimento.


Obviamente, escrever software livre é o que vai mudar tudo para sempre. :-) #
27411 Kushal

0

vala é provavelmente o número 3 (ou 4, se você contar gtkmm) de idiomas com boas ligações e documentação GTK. produz código intermediário em c, que você pode alterar ou estudar para ver como é feito, a maior parte do vala é apenas invólucros em torno do GObject e GLib. O código Vala é executado quase tão rápido quanto C e deve ser fácil para quem vem de c / c # / java

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.