Jasne, jeśli wszystko, co widziałeś w swoim życiu, jest celem C, to jego składnia wygląda na jedyną możliwą. Moglibyśmy nazwać cię „dziewicą programowania”.
Ale ponieważ dużo kodu jest napisanych w C, C ++, Java, JavaScript, Pascal i innych językach, zobaczysz, że ObjectiveC różni się od nich wszystkich, ale nie w dobry sposób. Czy mieli ku temu powód? Zobaczmy inne popularne języki:
C ++ dodał wiele dodatków do C, ale zmienił oryginalną składnię tylko w razie potrzeby.
C # dodał wiele dodatków w porównaniu do C ++, ale zmienił tylko rzeczy, które były brzydkie w C ++ (jak usunięcie „::” z interfejsu).
Java zmieniła wiele rzeczy, ale zachowała znajomą składnię z wyjątkiem części, w których zmiana była potrzebna.
JavaScript jest całkowicie dynamicznym językiem, który może zrobić wiele rzeczy, których ObjectiveC nie może. Jednak jego twórcy nie wymyślili nowego sposobu wywoływania metod i przekazywania parametrów tylko po to, by różniły się od reszty świata.
Visual Basic może przekazywać parametry poza kolejnością, podobnie jak ObjectiveC. Możesz nazwać parametry, ale możesz też przekazać je w zwykły sposób. Cokolwiek używasz, jest to normalny sposób rozdzielania przecinkami, który wszyscy rozumieją. Przecinek jest zwykłym ogranicznikiem, nie tylko w językach programowania, ale w książkach, gazetach i ogólnie w języku pisanym.
Object Pascal ma inną składnię niż C, ale jego składnia jest w rzeczywistości ŁATWIEJSZA dla programisty (może nie dla komputera, ale kogo to obchodzi, co myśli komputer). Może więc odeszli, ale przynajmniej ich wynik jest lepszy.
Python ma inną składnię, która jest jeszcze łatwiejsza do odczytania (dla ludzi) niż Pascal. Więc kiedy go zmienili, zmieniając, przynajmniej uczynili to lepszym dla nas, programistów.
A potem mamy ObjectiveC. Dodanie pewnych ulepszeń do C, ale wymyślenie własnej składni interfejsu, wywoływanie metod, przekazywanie parametrów i co nie. Zastanawiam się, dlaczego nie zamienili + i - tak, że plus odejmuje dwie liczby. Byłoby jeszcze fajniej.
Steve Jobs spieprzył, wspierając ObjectiveC. Oczywiście nie obsługuje C #, co jest lepsze, ale należy do jego najgorszego konkurenta. Jest to więc decyzja polityczna, a nie praktyczna. Technologia zawsze cierpi, gdy decyzje techniczne są podejmowane z powodów politycznych. Powinien kierować firmą, którą robi dobrze, a sprawy programistyczne pozostawić prawdziwym ekspertom.
Jestem pewien, że byłoby jeszcze więcej aplikacji na iPhone'a, gdyby zdecydował się napisać iOS i obsługiwać biblioteki w jakimkolwiek innym języku niż ObjectiveC. Dla wszystkich oprócz zagorzałych fanów, dziewiczych programistów i Steve'a Jobsa, ObjectiveC wygląda śmiesznie, brzydko i odrażająco.