Znam PHP i Ruby.
Używając klona PHP Rails (nie z wyboru), zwanego Symfony, (który jest najwyraźniej najlepszym frameworkiem PHP), zauważam, że jest to klon Railsów. Myślę, że Symfony jest głupi i że (SensioLabs to sprytna sprawa), ponieważ Rails już istnieje.
Poza projektami typu open source, które zarabiają pieniądze, nie rozumiem, dlaczego ludzie robią klony Railsów w PHP, kiedy Rails już istnieje. Dlaczego nie skorzystać z Railsów? Na pewno DHH koduje Ruby z jakiegoś powodu.
Używając Symfony, zauważam, że coś nie jest w porządku, ale nie wiem, co to jest. Nauczyłem się Railsów poprzez bzdurny e-book Sitepoint i zapomniałem go, więc teraz uczę się go za pośrednictwem ebooka PragProg i uwielbiam ten ebook. Nie do końca znam Railsy, ale rozumiem, jak to działa (dzięki Symfony). Chciałbym skończyć przeglądanie całego ebooka, aby móc tworzyć 2 aplikacje Railsowe. Pamiętam, że Railsy były bardziej zabawne niż Symfony, korzystając z ebooka Sitepoint, którego nie mogłem skończyć, a to nie miało nic wspólnego z ładną składnią Ruby.
- Dlaczego Szyny są kodowane w Ruby?
- Co takiego jest w klonach PHP Rails, które nie wydają się właściwe?
- Co robi Rails, czego nie robią klony Rails?
źródło
Ruby on Rails
się implementacją w PHP.Odpowiedzi:
Szyny zostały pierwotnie wyodrębnione z pracy DHH na Basecamp, która została napisana w Ruby. Z czasem programiści Railsów nadal wyodrębniali i rozwijali więcej funkcji w Railsach, co ostatecznie stało się pełnowartościowym frameworkiem.
Ponieważ Ruby zyskała na sile i ekspresji przez lata, nadal dobrze pasowała do frameworka, więc nadal jest językiem, w którym jest napisany. (Plus, „C # on Rails” lub „Java on Rails” nie nie mają tego miłego aliteracji.)
Naprawdę nie można na to odpowiedzieć obiektywnie, ale prawdopodobnie wynika to z # 1. Zachowanie i elementy wewnętrzne Railsów wykorzystują wiele funkcji, które istnieją w Rubim i trudno byłoby powielić je gdzie indziej. Na przykład PHP nie ma metaklasy, od których w dużym stopniu zależy Rails.
Ponieważ nie każdy ma czas, budżet lub ochotę na naukę nowego języka tylko po to, aby mógł nauczyć się nowego frameworka.
Analogicznie, jeśli okaże się, że Brainfuck ma bardzo popularny framework internetowy, czy to oznacza, że powinieneś porzucić swoich klientów, którzy nie napisali swoich aplikacji w Brainfuck? To nie jest sposób na prowadzenie firmy.
Stwierdzenia takie jak „Wiem zarówno PHP, jak i Ruby” sugerują, że możesz jeszcze nie w pełni docenić głębię, bogactwo i osobliwości każdego z nich.
źródło
Kiedyś podjęto decyzję o zaprogramowaniu go w rubinie. Ta decyzja projektowa trwa do dziś.
To uczucie, które trudno powiedzieć na stronie takiej jak ta. Możesz poprosić osobę, która jest z Tobą bardziej intymna i wie więcej o swoich uczuciach, a nawet dzieli się nimi.
Dokładny klon Railsów z definicji robi wszystko, co Railsy. To najprawdopodobniej będzie zależeć od tego, jak dokładnie klon został wykonany. Różne części spowodują różne zachowanie. Na przykład w przypadku tłumaczenia na inny język inny język może nie mieć funkcji językowych, z których korzysta Rails on Ruby, co najprawdopodobniej spowoduje różnice w projekcie, a następnie w zachowaniu.
źródło
Ruby pozwala na wiele metaprogramowania, a jego dopuszczalna składnia pozwala tworzyć ładne interfejsy API, które wcale nie przypominają wywołań metod.
Na przykład ActiveRecord, obiektowy obiekt relacyjny mapujący Rail, dobrze sobie z tym radzi. Po pierwsze, używa meta-programowania Ruby do tworzenia w locie metod odpowiadających nazwom pól w bazie danych.
Po drugie, ActiveRecord pozwala zadeklarować powiązania z obiektami:
Person
potęgahas_many :books
. To has_many wygląda jak deklaracja, ale tak naprawdę jest to wywołanie metody. (Ruby czyta to jakohas_many(:books)
.Ruby ma również na celu ułatwienie życia doświadczonym programistom.
Ruby ułatwia to, więc ludzie to robią. Inne języki utrudniają te działania, a takie magiczne rzeczy wyraźnie nie są częścią kultury. Django, mega-framework Pythona, ma znacznie mniej meta magii, ponieważ w Pythonie nie jest tak łatwo, a język Python skłania się ku „jawne jest lepsze niż niejawne”. (Nie wiem dużo o kulturze PHP ani frameworkach internetowych po tej stronie).
Myślę, że to niektóre z powodów, dla których DHH zakochał się w Ruby, a on używa tych funkcji językowych z mocą w Railsach.
źródło
Dlaczego nie skorzystać z szyn?
Będę oferować pewne perspektywy jako użytkownik obu. Zajmuję się programowaniem w Ruby / Rails i używam PHP wyłącznie w pracy. (Uwaga: nie odrzucam Ruby / Rails jako środowiska hobbystycznego, tak właśnie postanowiłem z niego korzystać).
Wiele osób traktuje Ruby / Rails jako świętego Graala tworzenia stron internetowych ze względu na popularność i „odmienność”. Pod wieloma względami z pewnością nie wystarczy, aby odrzucić PHP jako coś starożytnego.
Symfony nie czuje się jak Rails, ponieważ PHP nie ma cukru syntaktycznego, który zapewnia Rails. PHP poprawia się pod tym względem, a dodanie zamknięć w wersji 5.3 miało wpływ na to, ilu z nas pisze kod.
Nie zrozum mnie źle, uwielbiam Ruby i uwielbiam Railsy. Ale kiedy nie chcesz zajmować się złożonym lub drogim hostingiem stron internetowych lub martwić się wydajnością lub być „przełomowym”, PHP jest nadal niezwykle aktualne, a jego ramy są również bardzo dobre.
Twoje insynuacje, że klony PHP-ów nie „czują się dobrze” są mylące, ponieważ uważam, że nie są klonami i nie będą takie same jak Railsy. Naucz się wygrzewać w prostocie i znajomości rozwiązania PHP.
źródło