Znajomy napisał język programowania. Ma składnię przypominającą SGML. Napisał dla niego tłumacza i IDE. On i jego koledzy używają go wewnętrznie jako języka po stronie serwera. Można go również używać do pisania narzędzi wiersza polecenia.
Chce go udostępnić publicznie, oczekując, że ludzie wykupią licencję na korzystanie z niego. Chce zachować kod wyrażający implementację języka dla siebie, ponieważ wiąże się z tym spora część własności intelektualnej.
Powtarzam mu, że minął dzień języków programowania zamkniętego. Mówię: „Spójrz na wszystkie główne języki: zdecydowana większość to oprogramowanie typu open source. Będziesz musiał także wybrać oprogramowanie typu open source, jeśli chcesz, aby ktokolwiek spoza firmy zwracał uwagę na to, co zbudowałeś”.
Czy udzielam mu dobrych rad, czy jest jeszcze miejsce na zastrzeżone języki, za które płacisz?
PÓŹNIEJ
Den zapytał: „czy mógłbyś również wyjaśnić, w jaki sposób język może być źródłem zamkniętym?”
Powiedziałem: „@Den masz rację. Przypuszczam, że to, czego mój przyjaciel chce uniknąć, to sytuacja, w której Microsoft przygotowuje język podobny do Javy, nazywa go J ++, a następnie wdaje się w spór sądowy z firmą Sun o jego Javę Jak zabezpieczyć składnię i metodologię programowania przed przejęciem przez firmę, której wdrożenie może spowodować, że przestaniesz działać? ”
źródło
Odpowiedzi:
Odpowiedź brzmi: tak i nie. To zależy od komercyjnych motywacji potencjalnych klientów, atrybutów języka i problemów, które rozwiązuje.
Nie, świat nie potrzebuje innego języka obliczeniowego ogólnego przeznaczenia stworzonego przez osobę lub mały zespół. Kiedy Perl, Python, Ruby, Java i JavaScript zostały utworzone, istniała próżnia do wypełnienia, zastrzeżone języki były drogie, a bariera wejścia była niska. Rebol to taki, który początkowo był płatny i jest teraz bezpłatny. Spójrz na C # i przejdź, aby zobaczyć, jak trudniejsze jest teraz i jak duże są zespoły, nawet w przypadku mniej lub bardziej darmowych języków.
Ale tak, świat bardzo potrzebuje języków niszowych, aby wypełnić cały szereg konkretnych ról i dobrze za nie zapłaci. Nie mogę przytoczyć przykładów, ponieważ ani ty, ani ja nigdy nie słyszeliśmy o większości z nich, ale są one używane rutynowo w wysoce wyspecjalizowanych sytuacjach i zarabiają pieniądze dla swoich twórców. Rozwiąż problem, a otrzymasz zapłatę.
Tak więc, aby twój przyjaciel zarabiał pieniądze, potrzebuje jednej lub więcej z trzech rzeczy.
Problemy wymienione w poleganiu na małych firmach nie dotyczą wyłącznie języków programowania i można je łatwo rozwiązać za pomocą środków komercyjnych.
Ujawnienie: Jestem autorem komercyjnego systemu języka programowania (Powerflex), który pomógł wielu ludziom w tworzeniu firm programistycznych. To okno zostało zamknięte po otwarciu okna internetowego.
źródło
Język nie jest open source ani zamknięty jako taki. Na przykład G ++ jest oprogramowaniem typu open source, a MSVC ++ jest oprogramowaniem typu open source. ISO C ++ nie jest, jest to niewolny, niezastrzeżony standard.
Twój przyjaciel może wydać nieoptymalizującą implementację Open-Source i sprzedać fantazyjny kompilator optymalizujący. Interesująca własność intelektualna nie będzie potrzebna do prostego wdrożenia.
Istniejącym językiem współpracującym z tym modelem jest PHP / Zend Server
źródło
Czy jego język robi coś, za co wystarczy ludzi?
To naprawdę jedyna rzecz, która decyduje o tym, czy model biznesowy będzie działał. Czy masz duży rynek użytkowników wystarczająco dużych, aby nie martwić się o koszty licencji? Czy język obsługuje urządzenia lub standardy, bez których klienci nie mogą żyć, i których nic więcej nie obsługuje? Czy to jest tak niesamowicie wspaniałe, że klienci będą mogli zatrudnić największych, najbystrzejszych programistów i osiągnąć ogromny wzrost produktywności tylko za pomocą tego języka, i czy kierownictwo rozumie tę kompromis ?
Jeśli zachodzi którakolwiek z tych lub cokolwiek porównywalnego, prawdopodobnie model biznesowy będzie działał. W przeciwnym razie prawdopodobnie nie: prędzej czy później ktoś wymyśli środek obniżający koszty, który polega na przejściu na tańszą alternatywę.
źródło
Uważam, że nie, nie ma miejsca na nowy język z zastrzeżonym wdrożeniem sprzedawanym przez małą firmę.
Po pierwsze, programiści mają wiele innych darmowych (przynajmniej jako „w piwie”, a często jako „w mowie”) implementacji językowych i nie zawracają sobie głowy próbowaniem (cennego) języka.
Po drugie, każdy menedżer natychmiast sprzeciwiłby się: co by się stało - do naszej bazy kodu zakodowanej w nowym języku - gdyby mała firma zapewniająca implementację języka zbankrutowała? Ten argument prawdopodobnie zabroniłby każdemu zakupu implementacji języka!
W przeciwieństwie do tego, implementacja języka wolnego oprogramowania może zostać rażąco oceniona przez klientów, którzy zawsze mogą obsłużyć swoją usługę na rzecz innego dostawcy, jeśli pierwotna firma, która go napisała, zbankrutuje.
Z punktu widzenia klienta koszt przyjęcia nowego języka nie zależy od licencji na wdrożenie, ale od umiejętności wymaganych do jego używania.
Istnieje wiele implementacji języka wolnego oprogramowania, które są prawie nieużywane.
źródło
Język nie może być źródłem zamkniętym. Jego kompilator i biblioteki wykonawcze mogą mieć zamknięte źródła. Formalna gramatyka języka może być jednak utrzymywana w tajemnicy i podlegać ochronie prawnej (NDA itp.), A opłaty za użytkowanie pobierane.
Twój przyjaciel może ubiegać się o własność intelektualną lub patent, jeśli język jest tak nowy i nowatorski. Ja sam mam poważne wątpliwości, że byłoby to warte wysiłku.
W dzisiejszych czasach większość firm wybiera najpierw publicznie dostępne technologie, bez względu na to, jak pracochłonne byłoby osiągnięcie takiego samego efektu, jaki przyniosłoby podejście zamknięte. Następnie, jeśli koszty ogólne są bardzo duże, wówczas przechodzą do standardowego rozwiązania branżowego - znormalizowanych języków zastrzeżonych (np. Matlab), z dobrą penetracją i wsparciem.
Języki wewnętrzne są zwykle budowane jako DSL (języki specyficzne dla domeny), a obecnie wysiłek jest mniejszy niż zakup DSL innej osoby i dostosowanie jej. Ponadto DSL są bardzo specyficzne dla domeny problemowej.
Teraz nie zniechęcajmy swojego przyjaciela do zarabiania na jego języku. Są na to sposoby - sprzedać je dużej, ugruntowanej firmie lub skłonić inwestorów do zakupu pomysłu i zainwestowania w niego - ale jego głównym problemem w podejściu jest to, że opracował rozwiązanie bez badania problemu rozwojowego. I to nie jest problem, który uważa za problem, tylko to, co jego potencjalni klienci uważają za problem. Żeby mógł wyjść i porozmawiać z tymi facetami bez podawania szczegółów na temat swojego rozwiązania i nakłonić tych facetów do zapłaty - nie jest to niemożliwe, ale mało prawdopodobne.
źródło
Tę dyskusję przeprowadziłem sam, gdy jeden z moich klientów rozważał opracowanie dużych aplikacji przy użyciu ColdFusion. Osobiście nie mogę wymyślić żadnego powodu, aby używać CF (i płacić za to), kiedy mogę używać PHP (i nie płacić za to). Jednak CF ma za sobą dużą firmę, która uspokaja fobików OSS (radzi sobie z wystarczającą liczbą menedżerów IT, a na pewno natkniesz się na niektórych z nich) i na tyle dobrze, że wystarczająca liczba programistów faktycznie tego preferuje.
Jednak haczykiem jest oczywiście to, że twój przyjaciel musi wymyślić coś wystarczająco dobrego i wystarczająco dużo wsparcia. Ten pierwszy nie jest podstępny w dzisiejszych czasach, mając do czynienia z całkowicie dojrzałymi platformami open source, a ten drugi wymaga wsparcia ze strony przynajmniej wielkości, powiedzmy Adobe.
Nie wspominając już o tym, że nawet CF ma obecnie marginalny udział w rynku w porównaniu do OSS.
Podsumowując, jeśli twój znajomy jest wystarczająco błyskotliwy, aby wymyślić coś, co przyćmiewa PHP, Pythona, przyjaciół i biznes na tyle bystry, aby sprzedać go jednemu z większych i bardziej renomowanych graczy na rynku, odpowiedź brzmi „może”. W przeciwnym razie jest to głośne „nie”.
źródło
Myślę, że w tym przypadku odpowiedź jest zdecydowanie przecząca. Posiadanie nowego języka obsługiwanego przez małą jednostkę powoduje wysokie ryzyko błędów krytycznych lub braku kluczowych funkcji.
Jeśli ten język jest zastrzeżony, to jako użytkownik jesteś kompletnie popieprzony, jeśli język nie ewoluuje w kierunku, w którym go potrzebujesz, w odpowiednim tempie. Jeśli język jest darmowy, możesz rzucić pieniądze lub siłę ludzką na problem (co przynajmniej dla większych firm jest opcją).
Twojemu przyjacielowi znacznie lepiej byłoby sprzedawać komplementarne usługi lub produkty. Zapewnij wsparcie, szkolenie, konsultacje. Zarabiaj za dodawanie specjalnie wymaganych funkcji. Zapewnij narzędzia (np. W formie komercyjnych wtyczek do popularnych IDE). Zapewnij niektóre biblioteki w ramach komercyjnego modelu licencyjnego (ale nadal ze źródłem zawartym pod odpowiednimi ograniczeniami).
źródło
Chociaż nie chcę zniechęcać twojego przyjaciela, myślę, że jest mało prawdopodobne, aby udało mu się przekonać ludzi do płacenia za narzędzia programistyczne, chyba że to narzędzie zapewnia niewiarygodnie ogromny wzrost produktywności (jak w przypadku „produkowania działającego oprogramowania przez kierowników, którzy patrzą ze skrzyżowanymi oczami na ekranie, myśląc dobrze! ”). Na lepsze lub gorsze rynki zbytu dla narzędzi programistycznych typu „pay-for-play” jest obecnie bardzo mało, ponieważ ilość i jakość bezpłatnych narzędzi jest doskonała. (Języki takie jak Java, Ruby, Python, Clojure - IDE, takie jak Eclipse i LightTable - bazy danych, takie jak MySQL i PostgreSQL - lista jest długa, długa, długa, długa ... Życzę mu powodzenia w tym przedsięwzięciu.
źródło
To może. Jeśli to jest:
Właściwie - na początek powinien być naprawdę mocny na 2 pierwszych przedmiotach i bardzo zdyskontowany w porównaniu do jego prawdziwej wartości.
Widzę, że większość ludzi narzeka na złych menedżerów, którzy nie lubią za to płacić dużymi pieniędzmi - nigdy nie mówiłeś, że twój przyjaciel prosi o fortunę za licencję. Co jeśli poprosi o 500 USD rocznie, co pozwoli zaoszczędzić firmie kilkaset godzin pracy rocznie? Chwytałby go każdy inteligentny menedżer.
źródło
To zależy od tego, czy język oferuje coś, co jest na tyle genialne, że ja (reprezentujący klienta) jestem gotów zapłacić za to pieniądze.
Jako kierownik projektu muszę wziąć pod uwagę:
Pierwsze 3 punkty odnoszą się do każdego języka, a zwłaszcza pierwszy jest trudny do pokonania dla każdego nowego języka, ponieważ muszę coś uzasadnić czasem bardzo niskiej produktywności, a to lepiej być dobrym.
Czwarty punkt dotyczy tego, który dotyczy tylko języków zamkniętego źródła, tak jak w przypadku tych, których jestem zależny od stron trzecich, które mogą istnieć lub nie istnieć za 5 lat. 5 lat wcześniej aplikacje mobilne nie były tak duże jak dzisiaj, czy język odtąd dostosuje się do obecnej sytuacji i pozwoli mi pisać aplikacje mobilne? Czy będzie nawet zgodny z nowymi wymaganiami? Jeśli mój klient ma takie wymagania, czy mogę skontaktować się z programistą tego języka i złożyć wniosek o aktualizację?
Jeśli odpowiedź na którekolwiek z tych pytań brzmi „nie”, to może to być najlepszy język na świecie, nie mogę go używać. A jeśli słyszę, że jest jedna osoba, która wynalazła ten język w swoim „wolnym czasie”, a teraz pracuje jako jednoosobowa firma, byłbym bardzo podejrzliwy i raczej nie używałbym tego języka, chyba że dostanę bardzo solidne obietnice a język nie oferuje mi nic innego.
źródło