Dlaczego programiści nie piszą dla siebie?

2

Spotykam się z rozprawami na temat błędów i niedociągnięć w odtwarzaczach, IDE itd. Czemu programiści nie stworzą sami innych, potencjalnie lepszych apek? Soro jest tyle osób, które narzekają na jakiś projekt, że wystarczy na złożenie wielu różnych zespołów, to pozostaje się skomunikować.

7

@PerlMonk: bo doba ma tylko 24h.

Ludzie często robią hobbystycznie soft po pracy i żeby zmieścić jeszcze dodatkowy projekt, to pewnie by nie było czasu na życie prywatne.

Inną kwestia to wiedza i umiejętności. Co jak co ale napisanie własnego IDE wymaga większego skilla niż Hello Home w Springu.

0

A dlaczego maja pisać IDE (nawiasem mówiąca pisałem nadbudowę nad komponentem Scintilla, to się liczy?) albo odtwarzacza (a co to jest odtwarzacz ?)

Może i piszą coś dla siebie, ale skąd wiesz, co ich jara?

1

Czemu programiści nie stworzą sami innych, potencjalnie lepszych apek?

a nie lepiej aby po prostu PRa zrobili?

10
PerlMonk napisał(a):

Spotykam się z rozprawami na temat błędów i niedociągnięć w odtwarzaczach, IDE itd. Czemu programiści nie stworzą sami innych, potencjalnie lepszych apek? Soro jest tyle osób, które narzekają na jakiś projekt, że wystarczy na złożenie wielu różnych zespołów, to pozostaje się skomunikować.

Dużo osób pisze swoje rzeczy. Tylko to nie jest takie łatwe. Kiedyś chciałem napisać własne IDE w JS używając gotowego widżetu edytora kodu, a i tak było to trudne. Jeszcze dochodzi kwestia skali - co innego zrobić coś, co będzie używała jedna osoba, a co innego coś, co będzie używać tysiące programistów, więc dochodzi mnóstwo wymagań typu odpaliłem twoją aplikację na wirtualce z 1MB RAM i mi nie działa. albo twoja aplikacja jest do kitu, bo zacina się przy otwieraniu plików, które mają powyżej miliona linii kodu (wystarczy zajrzeć na jakikolwiek popularny projekt i zajrzeć w issues, których jest tak wiele, że nikt tego nie nadąża robić. To nie jest zajęcie na jedną osobę).

Dodajmy kwestię, że w tej chwili jest mnóstwo przydatnych narzędzi, o których nawet nie wiemy (bo ktoś nie reklamuje tego specjalnie) albo nawet jak je znamy, to nie będziemy używać (bo jest to za mało popularne rozwiązanie, nieutrzymywane, nienadażąjące za standardami albo zabugowane, mało wydajne, wybrakowane, trudne w obsłudze itp.) Tzn. mówię bardziej o różnych bibliotekach, gdzie jak potrzebuję użyć jakiejś biblioteki w JS do czegoś nietypowego, to zwykle kończy się na tym, że po wypróbowaniu kilku randomowych bibliotek z NPM, piszę jednak rozwiązanie samemu, bo tak i tak będzie łatwiej.

Soro jest tyle osób, które narzekają na jakiś projekt, że wystarczy na złożenie wielu różnych zespołów, to pozostaje się skomunikować.

Przecież są alternatywne projekty do wszystkiego. I wiele osób udziela się w open source, ale robi brudną robotę. Utrzymują projekty, fiksują bugi, dodają nowe ficzery. Czyli coś robią, a niekoniecznie jest to widoczne od razu.

pozostaje się skomunikować

Komunikacja zajmuje mnóstwo czasu :D wystarczy spojrzeć na popularne projekty open source i się okazuje, że ludzie zamiast na implementacji, to spędzają czas na wiecznych dyskusjach czy zrobić to tak czy inaczej i dlaczego nie możemy zrobić to w ten sposób (bo legacy code albo edge case'y). Ale przecież to z czegoś wynika. Gdyby projekty open source były rozwijane szybciej, to by musiały robić mnóstwo breaking changes. Ja jak na to patrzę, to mam ochotę po prostu wystartować własny projekt, zrobiony od zera, bez tego całego legacy kodu (tylko znowu wtedy jesteśmy w punkcie wyjścia - zrobienie czegoś od zera do etapu produkcyjnego jest dość żmudnym zajęciem).

4

Ja bym powiedział że tworzą i to w nadmiarze, tyle teraz jakichś dziwnych języków programowania że trudno wybrać np. ziglang.org czy haxe.org czy świat nie byłby lepszy jak by Ci wszyscy zdolni ludzie zebrali się razem stworzyli np. uberC?

Generalnie z kontrybucją do bardzo dużych projektów jest problem bo 1) jak chcesz zrobić coś dużego to brak zaufania ze strony innych kontrybutorów będzie ciebie hamował 2) projekty często są już jedną nogą legacy, często kod jest bardzo skomplikowany 3) dokumentacja często w głowie, dyskusje cross-timezone (przynajmniej dla polaka). Sporo osób mówi że Eclipse to g**no, ale niewielu tam kontrybucje żeby to naprawić. Pracowałem w jednej firmie która używała Eclipsa komercyjnie nawet złotówki nie wpłacili do fundacji, choć firma regularnie wspierała schronisko na paluchu, jedno słowo ciśnie się na usta...

2

A piszą ludzie dla siebie. Tylko większość z tych projektów nigdy nie będzie "wielka" bo:

  1. To są często małe narzędzia rozwiązujące mały konkretny problem, a nie naprawiają świat.
  2. Trzeba coś do gara włożyć, więc jeśli nie masz sponsora takiego projektu, to jak tylko przestaniesz go używać to umrze.

Ja mam parę mniejszych projektów, ale niespecjalnie widzę by stały się mocno popularne ze względu na to, że rozwiązują one moje problemy. A nawet jak jakiś mój projekt stanie się trochę bardziej używany (np. biblioteka do integracji aplikacji Erlangowych z systemd, która będzie używana w następnym wydaniu RabbitMQ), to dalej w większości jest to coś małego gdzieś w tle, a nie "framework".

Z "narzędzi" jakie stworzyłem dla siebie to 2 są takie, z których jestem jako tako zadowolony na chwilę obecną:

  • Dolores - proxy do lokalnego developmentu, które automatycznie generuje certyfikaty TLS i pozwala dynamicznie dodawać i usuwać projekty z listy obecnie działających.
  • pg-utlis - małe skrypty wspomagające pracę z optymalizacją DB
8

Poza tym przecież jest całe mnóstwo różnych pluginów do IDE napisanych przez nie-tworców tych IDE, przykładowo do IntelliJ jest normalne SDK i ludzie sobie klepią narzędzia takie jak plugin do Spocka, KeyPromoter etc.

1

@LukeJL: Domyślam się, że nie brakuje ludzi, którzy są w stanie zrobić poważne aplikacje. Zastanawiam się właśnie dlaczego tak słabo jest z dostępnością innych programów
Open source rządzi się swoimi prawami - jasna sprawa. Jednak - patrząc, że na świecie jest wielu programistów - powinny się znaleźć programy, które rozwija garstka osób i są te programy jakościowo porównywalne z Audacious, Amarok czy Notepad++ albo Kate. Foobar2000 podobno jest robiony przez parę osób. Podobno, bo nie ma repo i listy uczestników projektu a na stronie wymienia się tylko parę osób Jest to program w C i działa bardzo dobrze.
Gdyby spojrzeć na samo forum, to kilka osób chwali się, że robi coś ciekawego. Patrząc po wątku z zarobkami można się spodziewać, że takich osób jest więcej. Nawet, jeśli uznamy, że 1/3 tych osób kłamie a kolejna 1/3 jest przepłacana, to zawsze znajdą się wymiatacze. Czasem pojawiają się wątki, których autorzy siedzą po godzinach i kodzą. Tymczasem przychodzi mi do głowy Tetris i kilka innych rzeczy wspomnianych na mikroblogach. Ruch na forum jest całkiem duży.
Spodziewałem się, że trafię na więcej dobrych apek a tu bieda. Nawet czterdzieści kompletnych IDE albo samych edytorów ciężko znaleźć.

4

Bo z czegoś trzeba żyć. Jeżeli chcesz napisać "własne coś", to konieczne jest zrobienie tego we własnym prywatnym czasie kosztem odpoczynku, hobby, rodziny, znajomych. Zrobienie czegoś w miarę rozbudowanego i przyzwoitego, to masa pracy. Lubię programować, ale nie koniecznie znam się na designie, lubię testować aplikacje, tworzyć dokumentację i wykonywać masę innej, niezbędnej w produkcie dla ludzi roboty, która średnio mnie bawi. Nawet w przypadku samego programowania 90% pracy to nuda, czyli napiszesz coś co cię interesuje, ale albo zostanie to na poziomie obsługi przez CLI, albo będziesz za darmo klepał do tego UI. Ostatni argument to kasa - to co w tej chwili podbiło rynek, to aplikacje webowe, albo wymagające jakiegoś backendu a to oznacza koszty chmury, czy serwera.

1

Po pierwsze primo co sam napisałeś po godzinach że od innych wymagasz żeby pisali po godzinach :p
Po drugie primo ja po godzinach piszę rzecz totalnie nieprzydatną czyli interpreter BrainFucka :D (który może skończy się kompilatorem Forth-like języka do BrainFucka :) )
Po trzecie primo po godzinach piszę w Haskellu którego nie znam wiec pisanie idzie mi jak krew z nosa :(

0

@KamilAdam: nie pisałem, że wymagam. :D

3

Wielkość projektu Foobar2000 to jest graniczna, a właściwie to on już jest poza granicami, przekroczył je, ile można gratis zrobić przez grupę pasjonatów

Pomogło im

  • jak pisze kolega odrzucenie pewnych czynności zapleczowych (czerpię o projekcie wiedzę z tego, co piszecie)
  • jaki jest odtwarzacz, każdy widzi. Kontakt rynek->twórca jest milion razy prostszy dla "grajka" z jednym ekranem, niż dla programu z tysiącem ekranów, który każdy użytkownik może oceniać odmiennie (chwalic/krytykować) etc

Projekty "prawdziwe opesource", które chciałyby być większe, wpadają w paradygmat comarchu (skończona ilość programistów pracująca 5h / tygodniowo). Ten graf komunikacji zabija (ilość połączeń w grafie rośnie wykładniczo).
Na poziomie zarządzania firmami mówi się o Parkinsonie, niestety tu się też pojawia

0

Aha, kilka słów nt "prawdziwe opesource". O.S. za wynagrodzeniem (dla całości zespołu czy wiodących commiterów) w Oraclu nad javą, czy fundacjach typu Apache NIE JEST MNIEJ PRAWDZIWE

Powiedziałbym, ze jest prawdziwsze. Udostępnić to .o.s. "boli" więcej, a projekty hobbystyczne od singli były "od zawsze", tu nic nowego

Inna sprawa, niemożność dobicia się z patchem, czy propozycją nowości komuś "z ulicy", czy znacząco się różni w projektach korporacji i naprawdę dużych "volunteer".
Nie mam twardych danych, ale tak mi się wydaje, że nie. To nie stosunki finansowe, tylko wielkość (opinia subiektywna)

1
AnyKtokolwiek napisał(a):

Aha, kilka słów nt "prawdziwe opesource".

Tylko w OP nie jest mowa o tym, czy projekt jest OS, darmowy, płatny itd. Mowa o projektach chałupniczych, robionych samodzielnie, albo metodą pospolitego ruszenia. Słusznie zauważyłeś, że powyżej pewnego stopnia złożoności tak się nie da i potwierdza to rzeczywistość, w której za prawie każdym większym projektem OS stoi firma/fundacja/grupa z konkretnym budżetem i gromadką zatrudnionych na etacie specjalistów.

1

Ja mam sporo swoich narzędzi, które po prostu są moje prywatne, i nie mam zamiaru ich udostępniać np. na githubie.

W tym np. nakładka na framework Phalcon generująca panele administracyjne nad którą pracowałem półtora roku.

2

Trudny temat. Mało kto ma takiego skilla aby poukładać to wszystko.

3

@PerlMonk: pisanie IDE to dość trudne zadanie, zwłaszcza jeśli ma ono współpracować z językami jak C++ czy dynamicznymi jak Python. Nie dziwi mnie specjalnie, że takich rozwiązań nie ma za dużo, bo w większości przypadków zdecydowanie łatwiej i szybciej napisać wtyczkę do istniejących narzędzi czy serwer Language Protocol. Więc jak najbardziej ludzie tworzą narzędzia jakich potrzebują, ale w większości nie ma czasu wymyślać koła na nowo, więc takich IDE nie powstanie za dużo, bo lepiej się skupić na czymś co rzeczywiście przyniesie wymierny efekt w sensownym czasie.

0

Spotykam się z rozprawami na temat błędów i niedociągnięć w odtwarzaczach, IDE itd. Czemu programiści nie stworzą sami innych, potencjalnie lepszych apek? Soro jest tyle osób, które narzekają na jakiś projekt, że wystarczy na złożenie wielu różnych zespołów, to pozostaje się skomunikować.

Trochę wymieniłeś 2 różne kategorie, IDE to przeważnie narzędzie pracy, odtwarzacze to przeważnie programy rekreacyjne/użytkowe których nie wykorzystuje się do zarabiania.

Jeżeli chodzi o tą drugą kategorie, to nawet jeżeli coś usprawnić, to nikt mi za to nie zapłaci, musiałbym siedzieć po pracy co zdrowe nie jest, a nie sądzę żeby te mikrousprawnienia były tego warte - w razie czego jeżeli jest możliwość to jestem w stanie zapłacić za rozwiązanie komercyjne, a jak nie ma to trudno.

Jeżeli chodzi o narzędzie pracy - to czy kopie diamentowym czy zardzewiałym szpadlem to nie moja sprawa - o ile kopię takim który jest obecny na rynku pracy. To firmy mogą się tym zainteresować, jeżeli chcą coś usprawnić, i może dogadać się, zrobić zespoły międzyfirmowe które będą usprawniały to np. 1 godzinę w tygodniu.

1

1 godzinę w tygodniu

Godzinę w tygodniu to ja nawet miejsca w kodzie gdzie mam zmienić nie znajdę. Jak jedna Polska firma chciała poprawić Scale Native to oddelegowała jednego programistę na rok. I to jest sensowna ilość czasu. Programowanie niestety zajmuje dużo czasu. Życie to nie amerykański film o hakerach

0

@KamilAdam

Nie zgadzam się.

Jeżeli siadasz kompletnie od czapy bez żadnego planu, a w tle masz powiadomienia z 4p, facebooka i onlyfansa, to pewnie faktycznie w godzinę nic nie zrobisz

W side projetach które sam sobie klepiesz produktywność jest kompletnie inna niż w $business.

Oczywiście wszystko zależy od etapu projektu, bo na początku jest dużo rzeczy do zrobienia które faktycznie zabierają czasu np. jakieś primitives, infra, architektura, ale później to już leci.

0

@WeiXiao: ale ja nie mówiłem o własnych projektach tylko odpowiadałem @BluzaWczolg o poprawianiu cudzych projektów jak poprawianie IDĘ, odtwarzaczy muzycznych czy właśnie kompilatora Scala Native.
W swoich własnych projektach faktycznie umiem dużo zrobić w godzinę. Oczywiście o ile rozkminię wcześniej nowy feature Haskela:D

1 użytkowników online, w tym zalogowanych: 0, gości: 1