Vale a pena investir em aprender objective c?

Esse mês estarei comprando um mac air, e estou em dúvida se vale a pena
aprender a linguagem objective c da apple, junto com seu framework cocoa.

Alguém do guj poderia dizer como anda o mercado de objective c no brasil ?
se tem vagas ? a curva de aprendizado é a mesma do java ?

Eu não me arrependo nem um pouco em ter estudado Objective-C, pois mais que possa parecer que tenha uma syntax estranha e tudo mais, é uma linguagem bacana, eu gosto.

O mercado mundial de apps para iOS é grande e bem diversificado, e ainda teria a possibilidade de aplicativos nativos pra Mac, mas que tem demanda bem menor.
Em São Paulo pelo menos sempre tem vaga pra iOS developer, e se tem trabalhos remotos tbm, como freela ou não.

Se vc já sabe java, tem uma noção de C/C++, não terá dificuldade em aprender não.

[]s

acho que sim! só pelo fato de você poder programar para iOS já é um ganho, pois pode desenvolver suas aplicações e comercializá-las pela App Store - Quanto a linguagem me parece que ela é mais próxima de C ou C++ e a curva de aprendizado acho que é igual para todas as linguagens

Boa Sorte!

[quote=johnny quest]Esse mês estarei comprando um mac air, e estou em dúvida se vale a pena
aprender a linguagem objective c da apple, junto com seu framework cocoa.
[/quote]

A verdade é que não. Vc disse tudo é da apple.
A menos que você esteja planejando um negocio em cima do hardware e os da apple, esqueça.
E mesmo assim existem outras opções como o Mono (C#.net) que roda em Ios

Acho que vale a pena. Para desenvolvedores a appstore pode ser bem lucrativa.

[quote=sergiotaborda][quote=johnny quest]Esse mês estarei comprando um mac air, e estou em dúvida se vale a pena
aprender a linguagem objective c da apple, junto com seu framework cocoa.
[/quote]

A verdade é que não. Vc disse tudo é da apple.
A menos que você esteja planejando um negocio em cima do hardware e os da apple, esqueça.
E mesmo assim existem outras opções como o Mono (C#.net) que roda em Ios [/quote]
E C# não é praticamente todo ligado ao Windows e a M$?
A verdade é que sim, aprender algo novo nunca é demais.
O mínimo que você ganha é a visão de conceitos sob uma ótica diferente das linguagens que já conhece. O máximo? Não existe máximo quando se aprende. Você pode partir para novas coisas sempre.
Pensar que já se sabe tudo o que precisa é um erro, um equívoco muito comum em nossa área.
Se eu me contentasse com o que sabia de redes e administração de servidores, jamais estaria postando aqui, pois iria permanecer com infra. Mas cansei disso, resolvi procurar algo melhor. Depois que eu estiver numa situação mais confortável economicamente, irei cursar filosofia. Só pelo prazer de conhecer coisas novas.

[quote=drsmachado][quote=sergiotaborda][quote=johnny quest]Esse mês estarei comprando um mac air, e estou em dúvida se vale a pena
aprender a linguagem objective c da apple, junto com seu framework cocoa.
[/quote]

A verdade é que não. Vc disse tudo é da apple.
A menos que você esteja planejando um negocio em cima do hardware e os da apple, esqueça.
E mesmo assim existem outras opções como o Mono (C#.net) que roda em Ios [/quote]
E C# não é praticamente todo ligado ao Windows e a M$?
[/quote]

Não. Isso é um “missconception”. A M$ influencia bastante, mas não é dona do C#. O C# , assim como o javascript são um padrão ECMA.

O Mono não é da M$ e eles estão abrindo uma frente muito interessante que a M$ não enxergou: multiplataforma.

Sim, aprender é muito bom, mas estudar objective-c durante meses para fazer 1 app não compensa. Porque se vc não quiser fazer apps, tá na roça. Se vc aprender C# pelo menos tem mais para onde ir se os apps não derem certo. É uma questão de economia e opções e não e é bom e bonito aprender.

Claro, se o cara já decidiu que irá devotar sua vida à apple, ai sim vale a pena. Mas para aprender só por aprender, então é melhor aprender algo mais útil e mais abrangente e com mais saida. Senão estavamos todos aprendendo assembler just for fun.

particularmente considero que empatados em primeiro lugar eu colocaria em importância java e c#.
em seguida eu colocaria a importância empatada também entre objetive c e android.

Nessa ordem por que os dois primeiros são para agora e os outros dois são para o futuro relativamente próximo.

entre as que eu falei, considero empatadas por que acredito que entre java ou c# e entre objetive c e android, depende do gosto pessoal de cada um (sei que ios não é só no dispositivo móvel). O meu gosto pessoal entre os empatados fica na ordem que falei…rs

desta forma ainda acho mais interessante aprender c# do que objetive c ou android, mas claro que isso é só uma opinião minha.

Só vale investir se você tiver algum objetivo real em vista com isso, senão vá pra praia.

Se você é programador front-end e precisa de uma interface moderna e não aquela porcaria de javascript, sem dúvida deve aprender objective-c e seu framework cocoa. A boa notícia é que não é tão complicado.

Eu levei 1 semana pra fazer minha primeira app.

[quote=sergiotaborda]
Não. Isso é um “missconception”. A M$ influencia bastante, mas não é dona do C#. O C# , assim como o javascript são um padrão ECMA.

O Mono não é da M$ e eles estão abrindo uma frente muito interessante que a M$ não enxergou: multiplataforma.

Sim, aprender é muito bom, mas estudar objective-c durante meses para fazer 1 app não compensa. Porque se vc não quiser fazer apps, tá na roça. Se vc aprender C# pelo menos tem mais para onde ir se os apps não derem certo. É uma questão de economia e opções e não e é bom e bonito aprender.

Claro, se o cara já decidiu que irá devotar sua vida à apple, ai sim vale a pena. Mas para aprender só por aprender, então é melhor aprender algo mais útil e mais abrangente e com mais saida. Senão estavamos todos aprendendo assembler just for fun. [/quote]

E porque a proposição de ser multiplaforma é interessante?

[quote=JoseIgnacio][quote=sergiotaborda]
Não. Isso é um “missconception”. A M$ influencia bastante, mas não é dona do C#. O C# , assim como o javascript são um padrão ECMA.

O Mono não é da M$ e eles estão abrindo uma frente muito interessante que a M$ não enxergou: multiplataforma.

Sim, aprender é muito bom, mas estudar objective-c durante meses para fazer 1 app não compensa. Porque se vc não quiser fazer apps, tá na roça. Se vc aprender C# pelo menos tem mais para onde ir se os apps não derem certo. É uma questão de economia e opções e não e é bom e bonito aprender.

Claro, se o cara já decidiu que irá devotar sua vida à apple, ai sim vale a pena. Mas para aprender só por aprender, então é melhor aprender algo mais útil e mais abrangente e com mais saida. Senão estavamos todos aprendendo assembler just for fun. [/quote]

E porque a proposição de ser multiplaforma é interessante?[/quote]

Por razões económicas. A cada base de código que vc tem que construir, é dinheiro que vc gasta. Se vc tem um produto, digamos um ERP, por exemplo, e digamos que é em java. ai o windows muda para uma interface que só pode ser feita com .net e não aceita java mais. Vc vai reescrever o ERP inteiro ? Mesmo que seja só o cliente, vc vai reescrever inteiro ? Vc pode, mas essa é a solução mais cara. Se vc simplesmente pudesse usar o codigo java que já tem e compilar em .net seria o ideial. Mais barato e não tem que programar nada de novo, logo, menos erros e bugs. A IKVM permite isto. Claro que não é tão simples como eu descrevi, mas é muito mais simples e rápido (2 dias máximo) do que escrever o cliente em .NET.

A multiplataforma é sempre uma vantagem. O Java mostrou isso. Só que a plataforma Java implementou uma linguagem e N targets de runtime. O .net implementou um target ( o windows) e N linguagens. Hoje é óbvio que o bom é N linguagens e M targets.
Mas ai vei o omobile, os pads da vida e todos quiserem forçar o seu modelo fechado (por causa das stores, que a M$ tb tem ono windows 8) E agora ? voltamos atrás nos anos 80 quando não existia multiplataforma ? E vamos aprender N linguagens diferentes ? Hoje isso não é mais um bom modelo económico. Por isso que coisas como o PhoneGap têm mercado. Claro, não resolve todos os problemas, mas resolver uma grande maioria deles, o suficiente para ser viável. O PhoneGap usa HTML5 e javascript, ou seja, o Brwoser já é uma plataforma que roda em cima de outra plataforma, então embora cada ambiente mobile seja diferente, todos têm um browser e isso é que permite realizar aplicações cross. E com o HTML , usar o canvas para fazer 3D é muito mais trivial que antes porque o html 5 comanda que o canvas tenha acesso nativo à GPU.
Levando este mesmo conceito para desktop e servidores, o objetivo é ter uma linguagem e uma API que possa ser compilada para qualquer plataforma. Aqui, plataforma significa :Plataforma fisica (OS) Plataforma Virtual (java, .net, ruby, python, etc…) e mesmo Browser. então se o seu ERP é construido nesta meta-plataforma que suporta todas as outras, a sua base de código não está em perigo e vc só tem que se preocupar em compilar esse mesmo código contra uma API padrão que é provida por um VM em cada uma dessas plataformas que falei, ou até mesmo com compilação nativa para essas plataformas (assembler para exe, byte-code para java, etc… ) . E o que as novas plataformas como Gosu, Fantom, etc, mostram é que é possível.

O único problema é que nem sempre as sintaxes das novas plataformas agradam e também ainda tem um questão de confiança. Será que eu aposto em criar meu codigo de ERP em Fantom ?
Hoje a resposta mais conservadora ainda é : vai para web, usa javascript e sê feliz. E ai entram outras opções como Draft que compilam para javascript. Porque para fazer aplicações complexas end-to-end em javascript é muito complicado. javascript tem herança e tudo isso, mas ser fracamente tipado atrapalha e não haver uns construtoros mais simples para criar a herança, tb.

Não é por acaso que as grandes estão apostanto em novas linguagens que oferecem novas plataformas. É porque é mais barato assim. Quem enxergar isso primeiro e se aproveitar disso primeiro, vai ganhar o mercado primeiro.

[quote=JoseIgnacio]Se você é programador front-end e precisa de uma interface moderna e não aquela porcaria de javascript, sem dúvida deve aprender objective-c e seu framework cocoa. A boa notícia é que não é tão complicado.

Eu levei 1 semana pra fazer minha primeira app.[/quote]

Eu tenho algumas aplicações publicadas no google play e vou começar a publicar algumas na appstore. O google play dá bastante cliques em aplicações mais baratas. Na appstore o público já não se importa tanto então imagino ser mais rentável.

Além do mais é muito fácil escrever objective c como você mesmo postou aí.

Se quer desenvolver pra IOS vale a pena…
Eu prefiro bem mais Android pelo simples fato do custo beneficio ser bem melhor. Com o dinheiro investido em algo da apple da para comprar algo bem mais potente de outra marca (samsung por exemplo). Quem compra produtos da Apple acaba pagando mais pela marca do que pelo hardware e software propriamente dito…
Agora olhando o mercado dificilmente acho alguma vaga para desenvolver para IOS até mesmo para Android. Infelizmente no Brasil tem poucas empresas que investem em software para mobile…

[quote=luistiagos]Se quer desenvolver pra IOS vale a pena…
Eu prefiro bem mais Android pelo simples fato do custo beneficio ser bem melhor. Com o dinheiro investido em algo da apple da para comprar algo bem mais potente de outra marca (samsung por exemplo). Quem compra produtos da Apple acaba pagando mais pela marca do que pelo hardware e software propriamente dito…
Agora olhando o mercado dificilmente acho alguma vaga para desenvolver para IOS até mesmo para Android. Infelizmente no Brasil tem poucas empresas que investem em software para mobile…[/quote]

Aqui tem bastante campo pra android. As empresas que desenvolvem hardware estão usando android embarcado. Um pequeno arm com todo os tipos de entradas e saídas.

[quote=sergiotaborda]

Por razões económicas. A cada base de código que vc tem que construir, é dinheiro que vc gasta. Se vc tem um produto, digamos um ERP, por exemplo, e digamos que é em java. ai o windows muda para uma interface que só pode ser feita com .net e não aceita java mais. Vc vai reescrever o ERP inteiro ? Mesmo que seja só o cliente, vc vai reescrever inteiro ? Vc pode, mas essa é a solução mais cara. Se vc simplesmente pudesse usar o codigo java que já tem e compilar em .net seria o ideial. Mais barato e não tem que programar nada de novo, logo, menos erros e bugs. A IKVM permite isto. Claro que não é tão simples como eu descrevi, mas é muito mais simples e rápido (2 dias máximo) do que escrever o cliente em .NET.[/quote]

Você pode rodar um programa Desktop nos pads da vida. Não quer dizer que seja uma boa idéia.

[quote=sergiotaborda]
A multiplataforma é sempre uma vantagem. O Java mostrou isso. Só que a plataforma Java implementou uma linguagem e N targets de runtime. O .net implementou um target ( o windows) e N linguagens. Hoje é óbvio que o bom é N linguagens e M targets.

Mas ai vei o omobile, os pads da vida e todos quiserem forçar o seu modelo fechado (por causa das stores, que a M$ tb tem ono windows 8) E agora ? voltamos atrás nos anos 80 quando não existia multiplataforma ? E vamos aprender N linguagens diferentes ? Hoje isso não é mais um bom modelo económico. Por isso que coisas como o PhoneGap têm mercado. Claro, não resolve todos os problemas, mas resolver uma grande maioria deles, o suficiente para ser viável. O PhoneGap usa HTML5 e javascript, ou seja, o Brwoser já é uma plataforma que roda em cima de outra plataforma, então embora cada ambiente mobile seja diferente, todos têm um browser e isso é que permite realizar aplicações cross. E com o HTML , usar o canvas para fazer 3D é muito mais trivial que antes porque o html 5 comanda que o canvas tenha acesso nativo à GPU.
Levando este mesmo conceito para desktop e servidores, o objetivo é ter uma linguagem e uma API que possa ser compilada para qualquer plataforma. Aqui, plataforma significa :Plataforma fisica (OS) Plataforma Virtual (java, .net, ruby, python, etc…) e mesmo Browser. então se o seu ERP é construido nesta meta-plataforma que suporta todas as outras, a sua base de código não está em perigo e vc só tem que se preocupar em compilar esse mesmo código contra uma API padrão que é provida por um VM em cada uma dessas plataformas que falei, ou até mesmo com compilação nativa para essas plataformas (assembler para exe, byte-code para java, etc… ) . E o que as novas plataformas como Gosu, Fantom, etc, mostram é que é possível.

O único problema é que nem sempre as sintaxes das novas plataformas agradam e também ainda tem um questão de confiança. Será que eu aposto em criar meu codigo de ERP em Fantom ? [/quote]

Eu não culpo as pessoas por desconfiarem de soluções como phonegap, e outros que se dizem multiplataforma.

Se nem mesmo gigantes como google, apple e ms conseguiram unificar suas próprias plataformas em torno de uma “metaplataforma” (ChromeOS e Android, OSX e iOS, Windows 8 e Windows 8 RT, todos existem como plataformas distintas), qual a chance dos programadores Mono conseguirem? :lol:

[quote=sergiotaborda]
Hoje a resposta mais conservadora ainda é : vai para web, usa javascript e sê feliz. E ai entram outras opções como Draft que compilam para javascript. Porque para fazer aplicações complexas end-to-end em javascript é muito complicado. javascript tem herança e tudo isso, mas ser fracamente tipado atrapalha e não haver uns construtoros mais simples para criar a herança, tb. [/quote]

Acho que não existe uma resposta padrão, depende do tipo de aplicação.

Se for algo simples e sem muita sofisticação ainda vai, mas qualquer coisa que requer processamento mais intensivo (ou que precisa acessar recursos do aparelho) JavaScript ou Java não tem nenhuma chance. Nesse caso nativo é o único caminho.

[quote=sergiotaborda]
Não é por acaso que as grandes estão apostanto em novas linguagens que oferecem novas plataformas. É porque é mais barato assim. Quem enxergar isso primeiro e se aproveitar disso primeiro, vai ganhar o mercado primeiro.[/quote]

A não ser o Facebook que tentou fazer isso e quebrou a cara.

[quote=JoseIgnacio]
A não ser o Facebook que tentou fazer isso e quebrou a cara.[/quote]

Tem um texto dele falando que se arrependeu de fazer a aplicação do facebook como sistema híbrido. A melhor alternativa sempre seria nativo de plataforma.

[quote=juliocbq][quote=JoseIgnacio]
A não ser o Facebook que tentou fazer isso e quebrou a cara.[/quote]

Tem um texto dele falando que se arrependeu de fazer a aplicação do facebook como sistema híbrido. A melhor alternativa sempre seria nativo de plataforma.[/quote]

Até onde eu sabia o Facebook era feito em PHP e através de uma ferramenta desenvolvida por eles o código-fonte era convertido para C++. Por que o pessoal do Facebook se arrependeu?

[quote=matheuslmota]
Até onde eu sabia o Facebook era feito em PHP e através de uma ferramenta desenvolvida por eles o código-fonte era convertido para C++. Por que o pessoal do Facebook se arrependeu?[/quote]

Facebook não ganha dinheiro quando programadores compilam código mais rápido.

Tudo depende do caso mesmo, mas nunca passei por um caso de ter a necessidade de ser nativo. O maior erro é fazer algo nativo sem necessidade.