Android Ported to C# - XobotOS

[quote=juliocbq][quote=Markus Alemao]Comentarios sobre isso no br-linux (bastante esclarecedores):

http://br-linux.org/2012/xamarin-cria-port-do-android-em-c/[/quote]

Achei meio confuso este texto Markus.

Portar o android para c#(dot net)?
O android é uma plataforma(dalvik máquina virtual), Uma máquina virtual só pode ser escrita em linguagens de sistema. É o velho problema do ovo e da galinha.
Como se porta uma plataforma para uma “linguagem”?

O que dá a entender é que deram suporte para c# à dalvik.[/quote]

Minha principal duvida é quanto ao seguinte:

O sistema operacional Android é a VM Dalvik?, Dalvik não seria somente um componente do OS ?
Segundo o texto do blog da empresa (Xamarim) eles obtiveram melhorias significativas referentes ao desempenho em comparação a Dalvik, como isso seria possivel rodando sobre a Dalvik ?

PS: Quando disse ‘bastante esclarecedor’ se tratava dos comentarios do pessoal não do texto da noticia em si, falha minha :oops:

Essa é a arquitetura do Android:

Na minha interpretação* no modulo Runtime foi substituida a Dalvik e inserida a Mono seria isso ?
*Com base na resposta ao comentario no br-linux:

[quote=Markus Alemao]Essa é a arquitetura do Android:

Na minha interpretação* no modulo Runtime foi substituida a Dalvik e inserida a Mono seria isso ?
*Com base na resposta ao comentario no br-linux:

 [/quote]

Faz sentido e dessa maneira já é possível. A dalvik é só uma máquina virtual. Debaixo dela ainda tem um kernel. Mas aí já seria um “Mondroid” não!? Não seria um google android.

Perfeitamente possível desenvolver qualquer VM dentro do android, não tem que desenvolver necessariamente dentro da dalvik.

Agora, esse povo do mono, deve tá é puxando um baseado.

Esse projeto “XobotOS” tem como objetivo ser um VM concorrente da dalvik.

[quote=juliocbq]
Faz sentido e dessa maneira já é possível. A dalvik é só uma máquina virtual. Debaixo dela ainda tem um kernel. Mas aí já seria um “Mondroid” não!? Não seria um google android.[/quote]

Ta mais pra um “MonsterDroid” :lol: :lol:

Agora sera que conseguiram ajeitar tudo, os drivers e tals? Tipo sera que esta ao menos rodando em um Nexus da vida? E a principal pergunta de todas, quem vai comprar esta idéia? Porque não é simplesmente usar outra linguagem para desevolver apps para android, os caras pelo jeito trocaram a VM inteira(Se é que estamos corretos com os achismos, parece que ninguem leu o artigo la :twisted: nem eu :shock: )

Achei isto!

Coisas que eu não entendo:
Pq se dar o trabalho de fazer uma plataforma/vm sei lá o que, em C#, sendo que hj é em Java.
Seria quase como trocar 6 por meia dúzia.
Se fosse por Pytho, Ruby, Scala, uma coisa totalmente diferente, ok, mas C# :?

[quote=j0nny]Coisas que eu não entendo:
Pq se dar o trabalho de fazer uma plataforma/vm sei lá o que, em C#, sendo que hj é em Java.
Seria quase como trocar 6 por meia dúzia.
Se fosse por Pytho, Ruby, Scala, uma coisa totalmente diferente, ok, mas C# :? [/quote]

Por questão de portabilidade da plataforma net.

E’ isso que falta ao android, portabilidade com JVM.

Quem sabe isso não inspire o povo do openJDK desenvolver uma JVM para android.

[quote=j-menezes][quote=j0nny]Coisas que eu não entendo:
Pq se dar o trabalho de fazer uma plataforma/vm sei lá o que, em C#, sendo que hj é em Java.
Seria quase como trocar 6 por meia dúzia.
Se fosse por Pytho, Ruby, Scala, uma coisa totalmente diferente, ok, mas C# :? [/quote]

Por questão de portabilidade da plataforma net.

E’ isso que falta ao android, portabilidade com JVM.

Quem sabe isso não inspire o povo do openJDK desenvolver uma JVM para android.[/quote]

E de que portabilidade vc fala?
Dê um exemplo de vantagem do C# frente ao Java…

[quote=j0nny][quote=j-menezes][quote=j0nny]Coisas que eu não entendo:
Pq se dar o trabalho de fazer uma plataforma/vm sei lá o que, em C#, sendo que hj é em Java.
Seria quase como trocar 6 por meia dúzia.
Se fosse por Pytho, Ruby, Scala, uma coisa totalmente diferente, ok, mas C# :? [/quote]

Por questão de portabilidade da plataforma net.

E’ isso que falta ao android, portabilidade com JVM.

Quem sabe isso não inspire o povo do openJDK desenvolver uma JVM para android.[/quote]

E de que portabilidade vc fala?
Dê um exemplo de vantagem do C# frente ao Java…[/quote]

Vantagem de C# em frente ao java, ( fala serio ) , net é uma #$@#$@$@#$.

Portabilidade é você ter o mesmo codigo e rodar em diversas plataformas.

Sem essa de traduzir pra dalvik.

[quote]
Faz sentido e dessa maneira já é possível. A dalvik é só uma máquina virtual. Debaixo dela ainda tem um kernel. Mas aí já seria um “Mondroid” não!? Não seria um google android.[/quote]

Bingo ! :slight_smile:

Realmente não é Android é XobotOS (esse ‘OS’ já diz bastante coisa).

[quote=j-menezes]Perfeitamente possível desenvolver qualquer VM dentro do android, não tem que desenvolver necessariamente dentro da dalvik.

Agora, esse povo do mono, deve tá é puxando um baseado.

Esse projeto “XobotOS” tem como objetivo ser um VM concorrente da dalvik.

[/quote]

Vamos separar alhos(olhos ?) de bugalhos como dizia o velho(VM’s de OS’s ):

XobotOS é um concorrente ao Android, a VM Mono que concorre com a Dalvik.

[quote=j-menezes]…
Agora, esse povo do mono, deve tá é puxando um baseado…

[/quote]

Miguel de Icazza(Lider do projeto) é um genio na arte da trollagem :D.

Grande figura.

Uai, o cara nao pode usar sua linguagem preferida para programar para android? O cara trabalha com C#, Groovy, Ruby, Scala, etc, acha sua linguagem interessante e produtiva pra ele, porque nao usa-la para android tambem se é possivel?[/quote]

Porque apesar de possível, não é viável fazer um app funcional usando essas linguagens.

Resumindo: é pra quem não tem o que fazer mesmo.[/quote]

Se é viavel ou não, acho que depende de muitos fatores, empresas, pessoas e etc. Mas para um desenvolvedor que trabalha só, em projetos pessoais pode ser viavel sim. E tem gente usando e me parece que levam a sério, aqui um exemplo em scala: http://blog.andresteingress.com/2011/09/20/programming-android-with-scala/

Ruboto Ruby on Android.

Python for android[/quote]

Não entendi o que esses links tem a ver com ser viável. Poderia passar o link de algum app no android market que usa essas linguagens alternativas?

Uai, o cara nao pode usar sua linguagem preferida para programar para android? O cara trabalha com C#, Groovy, Ruby, Scala, etc, acha sua linguagem interessante e produtiva pra ele, porque nao usa-la para android tambem se é possivel?[/quote]

Porque apesar de possível, não é viável fazer um app funcional usando essas linguagens.

Resumindo: é pra quem não tem o que fazer mesmo.[/quote]

É possível criar qualquer aplicação em qualquer linguagem, e é completamente viável usar qualquer das citadas acima para desenvolver para o android. Basta que se tenha ferramentas para gerar o código específico do processador ou da máquina virtual.[/quote]

O que você falou é obvio não acha? Claro, se vc tiver todas as ferramentas necessárias será viável. O problema é que não tem. Por isso você não tem um app no market feito usando alguma dessas linguagens.

O problema é que a API Android é Java, a menos que alguém tenha o trabalho enorme de portar toda a API para alguma dessas linguagens, você não tem as ferramentas necessárias para criar um app funcional.

[quote=fredferrao]http://www.infoq.com/news/2012/05/XobotOS

Achei isto![/quote]

Esse link já está bem claro. Eles não estão trocando a dalvik, somente trocaram a linguagem para c#. Acho c# uma linguagem muito boa para desenvolver software. Se a google resolver trocar, já dá pra usar essa aí.

Uai, o cara nao pode usar sua linguagem preferida para programar para android? O cara trabalha com C#, Groovy, Ruby, Scala, etc, acha sua linguagem interessante e produtiva pra ele, porque nao usa-la para android tambem se é possivel?[/quote]

Porque apesar de possível, não é viável fazer um app funcional usando essas linguagens.

Resumindo: é pra quem não tem o que fazer mesmo.[/quote]

É possível criar qualquer aplicação em qualquer linguagem, e é completamente viável usar qualquer das citadas acima para desenvolver para o android. Basta que se tenha ferramentas para gerar o código específico do processador ou da máquina virtual.[/quote]

O que você falou é obvio não acha? Claro, se vc tiver todas as ferramentas necessárias será viável. O problema é que não tem. Por isso você não tem um app no market feito usando alguma dessas linguagens.

O problema é que a API Android é Java, a menos que alguém tenha o trabalho enorme de portar toda a API para alguma dessas linguagens, você não tem as ferramentas necessárias para criar um app funcional.[/quote]

Isso que você falou não é verdade. Api é um conceito abstrato. São somente interfaces. A implementação delas não tem nada a ver com java, ou seja android não é java, tanto é que a máquina virtual é diferente e consequentemente o bytecode também.

Não confunda linguagem com plataforma.

Claro que existem. Primeiro de tudo, qualquer ferramenta que gere bytecode java já serve para desenvolver para android. Por isso qualquer linguagem que seja suportada pelo jdk da oracle é plausível de rodar no mesmo(porque o android sdk pode converte-los para código dalvik).

um exemplo aqui com c#
http://xamarin.com/monoforandroid

E existem muitas aplicações no marketing escritas em c++, c e c#, e podem ser escritas em ruby, scala…

[quote=Markus Alemao][quote=j-menezes]Perfeitamente possível desenvolver qualquer VM dentro do android, não tem que desenvolver necessariamente dentro da dalvik.

Agora, esse povo do mono, deve tá é puxando um baseado.

Esse projeto “XobotOS” tem como objetivo ser um VM concorrente da dalvik.

[/quote]

Vamos separar alhos(olhos ?) de bugalhos como dizia o velho(VM’s de OS’s ):

XobotOS é um concorrente ao Android, a VM Mono que concorre com a Dalvik. [/quote]

Não é isso que entendi que eles estão fazendo.

XobotOS ao que parece tem somente nome o “OS” que lembra sistema operacional, mas no fundo é apenas
mais uma VM Mono concorrente da dalvik.

O que isso tem a ver com alguma coisa que eu falei?

Repetindo: A API do Android está disponível para apps escritas em Java. Usando C# vai ter que usar a API do mono. Em Scala você não tem API. Etc.

[quote=Hermanoz][quote=juliocbq]
Isso que você falou não é verdade. Api é um conceito abstrato. São somente interfaces. A implementação delas não tem nada a ver com java, ou seja android não é java, tanto é que a máquina virtual é diferente e consequentemente o bytecode também.

Não confunda linguagem com plataforma.
[/quote]

O que isso tem a ver com alguma coisa que eu falei?

Repetindo: A API do Android está disponível para apps escritas em Java. Usando C# vai ter que usar a API do mono. Em Scala você não tem API. Etc.[/quote]

[quote]
O problema é que a API Android é Java, a menos que alguém tenha o trabalho enorme de portar toda a API para alguma dessas linguagens, você não tem as ferramentas necessárias para criar um app funcional.[/quote]

Isso aí em cima foi você mesmo quem escreveu. E não está certo.

Api é só um conceito abstrato. É um recursos de alto nível, isto é para simplificar o que lemos. Para a máquina(seja vm ou processador real) o que interessa é somente um set de instruções. Se você conseguir compilar um bytecode compatível com o do android seu problema está resolvido(isso as ferramentas do sdk te proporcionam).