LINUX.ORG.RU
ФорумTalks

[ЖЖ][Программирование]Objective-C

 ,


0

1

Долгое время был Java-разработчиком. Потом как-то захотелось разнообразия, да и просто чтобы быть более мужественным, я перешел на сторону C++. Вернее, не перешел, а стал участвовать не только в Java-проектах, но и С++. Признаться, первые недели уши в трубочку сворачивались. Чего я только там не насмотрелся, одни 800 printf'ов подряд чего стоят. Столько плохого кода я никогда не видел. Был конечно и хороший код, но его было подавляющее меньшинство. Раздражало буквально все: начиная с того, что каждый дает наименования переменным/методам/классам на свой манер, и заканчивая... да ничем не заканчивая. Хотел свалить с этого дурдома, но не получилось, а потом вроде как и привык.

Вот недавно, пару месяцев назад, решил для разнообразия изучить Objective-C и Cocoa/Cocoa-Touch в частности. Для начала чисто для себя. Скачал какой-то pdf, и при беглом взгляде все это показалось какой-то несуразицей: из ниоткуда орда квадратных скобок, какие-то именованные параметры в сообщениях, до ужаса неудобная и непривычная среда разработки. Я даже забросил сразу же. А потом при втором заходе, удивился, насколько же здесь все продуманно, удобно. Одни только категории и генерации пропертей чего стоят. Все то, чего не доставало мне раньше, здесь все это есть, словно создатели и разработчики Objective-C прочли мои мысли и воплотили их. Кто они, эти создатели и разработчики, я как-то пропустил, но кем бы они не были, респект им и уважуха за такую замечательную вещь, как Objective-C.

★★★
Ответ на: комментарий от maxkit

да я не против Object-C, но время то уже позднее :-)

splinter ★★★★★
()

>800 printf'ов подряд

C++


???

аждый дает наименования переменным/методам/классам на свой манер


И тут, конечно, тоже виноват C++ :)

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

???

Что, никогда не видел? Повезло значит.

И тут, конечно, тоже виноват C++ :)

Ну по большому счету да.

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

>Что, никогда не видел? Повезло значит.

Я как бы намекаю, что проблема не в C++.

Ну по большому счету да.


4.2, товарищь. Либо у вас счёты сломались.

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

Ну хорошо. Насчет наименования. В джаве все будут называть переменные типа firstName, методы - setFirstName, классы - PersonAgencyRelation. В С++ уже будут то __set_first_name(), то SetFirstName(), то set_First_Name(). Вот почему такая ситуация вообще возникает?

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

Не обязательно, манера именования не влияет на уровень.

slyjoeh ★★★
() автор топика

>800 printf'ов подряд

теперь я понял почему у тебя такой юзерпик.
вас бы специалисту показать...

k0l0b0k ★★
()

сабж очень даже интересен, даже изучил в некоторой мере, но уродский синтаксис и наличие нормальной поддержки только в анальном маке - отбивают всякое желание...

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

>Потому что вам попались какие то рукозадые обезьяны вместо программистов.

+100. и в C++ И в жабке правила именования задаются человеческими соглашениями.

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

> Вот почему такая ситуация вообще возникает?
Возникает из-за программистов-идиотов, которые не в состоянии договориться об общих coding conventions.

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

и в C++ И в жабке правила именования задаются человеческими соглашениями.

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

RealSiberianMan
()

По поводу Objective-c - согласен. ИМХО наиболее логичная передача ООП парадигмы, сам не сразу привык к «странному» синтаксису, но люди которые учаться с нуля на нем пишут лучше чем на жабе.

По поводу С++ - глупости пишете уважаемый. Как человек повидавший и программистов и абизьян-кодеров - нифига язык не решает, есть люди которые даже на нелюбимом мною питоне пишут аки Пушкин. А есть и на objc такую муть лепят и оправдываются «Ипанутый синтаксис, ипанутый язык».

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

> Что, никогда не видел? Повезло значит.

Там вообще-то потоки есть, неуч

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

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

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

> и наличие нормальной поддержки только в анальном маке - отбивают всякое желание

http://ru.wikipedia.org/wiki/Objective-C
На данный момент язык Objective-C поддерживается компиляторами gcc и llvm

Вопрос к спецам. Это что же, у меня тоже будет работать?

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

> Вопрос к спецам. Это что же, у меня тоже будет работать?

Что будет работать? Код на Objective-C, совместимый с gcc? Да, скомпилируется и будет работать. Cocoa это яблочный фреймворк, он работать не будет. К.О.

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

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

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

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

> там потоки есть, неуч

Попугай?

для того чтобы салат не превратился в компост

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

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

>>А нафига вообще чем то ограничивать программиста? Почему он должен под чью-то дудку плясать, а не сам выбирать себе систему названий?

для того чтобы салат не превратился в компост

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

учимся читать :)

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

Попугай?

родственников ищешь? :)

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

> есть GNUStep, не Cocoa, но что-то есть.

Есть GNUStep, есть Etoile (может и не правильно написал) и некоторое число фреймворков ещё, но толку мало то слабо поддерживаются, то древние. Да и сам GNU Objective-C не совсем совместим с яблочным.

Но писать всё-таки можно, отчего же нельзя, никто не запрещает. :)

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

>> Вопрос к спецам. Это что же, у меня тоже будет работать?

Что будет работать? Код на Objective-C, совместимый с gcc? Да, скомпилируется и будет работать. Cocoa это яблочный фреймворк, он работать не будет. К.О.


Как Вы думаете, каким компилятором собирают Cocoa?

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

> Как Вы думаете, каким компилятором собирают Cocoa?

Яблочным gcc, и что? Я могу собрать Cocoa под Linux?

Тот gcc, который в Linux, уже поддерживает Objective-C 2.0? Напомните, а то работал с Objective-C более полутора лет назад, может уже что и поменялось.

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

А то ТС так рассказывает, что я уже качаю леопардика :) Буду пробовать.

Лучше сразу Mac купи. Установка хацинтоша всё же танцы с бубном. :)

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

> не понимаю, как быдлокод на C++ дескредитирует сам C++
Быдлокод на любом языке - это ОЧЕНЬ хорошая характеристика языка. Быдлокод на жабке совсем не то, что быдлокод на плюсах. А взять какой-нибудь дельфиный быдлокод, или перловый...

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

а runtime? на хабре (свят-свят), поговаривали что libobjc не совсем качественная. сам пользовал только на маке

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

> Быдлокод на любом языке - это ОЧЕНЬ хорошая характеристика языка. Быдлокод на жабке совсем не то, что быдлокод на плюсах. А взять какой-нибудь дельфиный быдлокод, или перловый...

Только про Lisp не вспоминай, плииииз.... :))

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

Не буду. Мне не хватает фантазии представить такое;)

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

GNUStep и Etoile вполне себе развиваются, медленно конечно, но развиваются.

другое дело, что под линуксом нормальной IDE нет - это проблема.

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

> GNUStep и Etoile вполне себе развиваются, медленно конечно, но развиваются.

Развиваются конечно, и в чём то они тру, но больно уж всё неспешно. Жалко.

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

>Я могу собрать Cocoa под Linux?

есть cocotron
на хабре была статья об нем и возможности сборки под слинупсом
нужен патченый gcc

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

> В С++ уже будут то __set_first_name

В C++ такие имена зарезервированы для компилятора и системных библиотек. Мне страшно представить, какого говнокода еще понаплодило ваше быдло. Лучше б и правда на яве писали.

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

> Я как бы намекаю, что проблема не в C++.

Ну конечно, когда говнокод на похапэ - это проблема похапэ, а когда говнокод на плюсах - это проблема разработчиков. :)

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

>Где тут yoghurt с воздушным шариком на юзерпике?

Тут не только йогурт может. Тут ещё я могу влезть со Scala. А уж про лисперов-то даже упоминать не надо, и так очевидно, что влезут.

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

Казалось бы, при чём здесь пхп.

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

> Нет, не страшный

Забыл вывесить табличку «Это был сарказм» :)

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