Czy język programowania o zamkniętym źródle może przetrwać? [Zamknięte]

12

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ć? ”

Bugmagnet
źródło
Dajesz mu dobrą radę.
Basile Starynkevitch,
14
To nie jest kwestia zamkniętego źródła, to kwestia pieniędzy - nikt nie płaci za języki programowania.
Pharap,
8
Jeśli język jest wystarczająco dobry, aby był wart swojej ceny, ludzie będą skłonni zapłacić. Założę się, że język nie jest wystarczająco dobry, aby wart jakiejkolwiek kwoty, zwłaszcza w porównaniu z darmowymi alternatywami.
user253751
1
Wątpię, czy twój przyjaciel może praw autorskich do właściwego języka - spójrz na orzeczenie UE w sprawie SAS .
Colin Pickard
7
„nikt nie płaci za języki programowania” - z wyjątkiem wyspecjalizowanych branż lub przypadków użycia. Przychodzi mi na myśl Wolfram ( wolfram.com/language ). Lista płatnych języków podkreśla inne przypadki użycia, w których warto.
Freiheit,

Odpowiedzi:

10

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.

  1. Możliwa do zidentyfikowania nisza techniczna, dla której jego język jest najlepszym dostępnym rozwiązaniem, najlepiej z dość wysoką barierą wejścia na rynek, aby spowolnić konkurentów.
  2. Możliwy do zidentyfikowania segment klientów z problemem, który jego język może rozwiązać, a także zdolność do zapłaty za jego rozwiązanie.
  3. Zbiór wcześniej napisanego kodu, dokumentacji, samouczków i umiejętności, które pozwolą klientom na natychmiastowe uruchomienie i natychmiastowe rozwiązywanie problemów.

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.

david.pfx
źródło
20

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

MSalters
źródło
17

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ę.

Kilian Foth
źródło
3
Ładne pytania, ale ponieważ jest to NOWY język, na większość pytań należy odpowiedzieć przecząco. Trochę jak młodzieniec próbujący znaleźć pracę: w jaki sposób spełniasz wymaganie posiadania doświadczenia, gdy jesteś zbyt młody, aby go zdobyć.
bugmagnet
1
Skoro twoja odpowiedź otrzymała tyle głosów poparcia, czy mógłbyś również wyjaśnić, w jaki sposób język może być zamknięty ?
Den
@Dawaj dobry punkt. 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 uniemożliwić prowadzenie działalności?
bugmagnet
14

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.

Basile Starynkevitch
źródło
5
Chociaż są częścią większych pakietów, ludzie płacą za używanie Matlaba, Klonu, Matematyki i UnrealScript.
Trillian,
7
Ale nie pochodzą one od małej, nieznanej firmy, a firma sprzedająca je rozpoczęła w ubiegłym wieku.
Basile Starynkevitch,
3
@Trillian: także pomimo Turinga kompletnego, wspomniane języki nie są językami ogólnego przeznaczenia, zostały stworzone specjalnie do użycia na konkretnej platformie, platformie matematycznej i graficznej na początku, a silnik gry na końcu. Te platformy sprawiły, że te języki były warte swojej ceny i kłopotów z nauką nowego języka dla osób, które potrzebowały funkcjonalności platformy. Zapewne nie sprzedają tylko języka, ale całą platformę.
Lie Ryan,
5

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.

TFuto
źródło
4
„Formalną gramatykę języka można zachować jako tajemnicę” - jak ktokolwiek mógłby używać języka, nie znając jego gramatyki?
el.pescado
2
@ el.pascado: upewniając się, że każdy, kto chce używać języka, podpisuje umowę NDA, jest do bani, ale niektórzy nieświadomi kierownicy mogą pomyśleć, że to dobry pomysł.
Lie Ryan,
3

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”.

Frank van Wensveen
źródło
2

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).

back2dos
źródło
1

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.

Bob Jarvis - Przywróć Monikę
źródło
Jeśli chodzi o języki, możesz mieć rację. Jednak wciąż istnieje rynek płatnych narzędzi programistycznych. MS, Adobe, JetBrains itp. Nie do końca bolą za gotówkę, ostatnio słyszałem. Wydaje się, że jest gdzieś argument za darmowymi wersjami „lite” lub wersjami próbnymi.
cHao
1

To może. Jeśli to jest:

  • wystarczająco dobre i / lub przydatne
  • jeśli jest to wystarczająco łatwe i
  • jeśli to nie jest zbyt drogie

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.

użytkownik użytkownika
źródło
0

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ę:

  • Czas potrzebny na naukę / opanowanie tego nowego języka.
  • Wzrost wydajności (czas do dostawy) w porównaniu do innych języków. I czy to ważniejsze niż czas na naukę?
  • Czy ten język rozwiązuje problem, którego nie da się rozwiązać za pomocą innych języków?
  • Czy ten język będzie nadal obsługiwany za 5 lat, czy klient powinien złożyć kolejne żądanie?

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.

TwoThe
źródło