eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingJak Wam się pracuje z samodzielnie zaprojektowanymi i zakodowanymi programami? › Re: Jak Wam się pracuje z samodzielnie zaprojektowanymi i zakodowanymi programami?
  • X-Received: by 2002:a05:622a:5cc:b0:2e1:ecc9:5a2a with SMTP id
    d12-20020a05622a05cc00b002e1ecc95a2amr18635835qtb.554.1648413327231; Sun,
    27 Mar 2022 13:35:27 -0700 (PDT)
    X-Received: by 2002:a05:622a:5cc:b0:2e1:ecc9:5a2a with SMTP id
    d12-20020a05622a05cc00b002e1ecc95a2amr18635835qtb.554.1648413327231; Sun,
    27 Mar 2022 13:35:27 -0700 (PDT)
    Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!3.eu.feeder.erj
    e.net!feeder.erje.net!border1.nntp.dca1.giganews.com!nntp.giganews.com!news-out
    .google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!
    not-for-mail
    Newsgroups: pl.comp.programming
    Date: Sun, 27 Mar 2022 13:35:27 -0700 (PDT)
    In-Reply-To: <2...@g...com>
    Injection-Info: google-groups.googlegroups.com;
    posting-host=2a01:113f:400f:7f00:a710:607e:23f9:a3b0;
    posting-account=f7iIKQoAAAAkDKpUafc-4IXhmRAzdB5r
    NNTP-Posting-Host: 2a01:113f:400f:7f00:a710:607e:23f9:a3b0
    References: <2...@g...com>
    User-Agent: G2/1.0
    MIME-Version: 1.0
    Message-ID: <0...@g...com>
    Subject: Re: Jak Wam się pracuje z samodzielnie zaprojektowanymi i zakodowanymi
    programami?
    From: Maciek Godek <g...@g...com>
    Injection-Date: Sun, 27 Mar 2022 20:35:27 +0000
    Content-Type: text/plain; charset="UTF-8"
    Content-Transfer-Encoding: quoted-printable
    Lines: 134
    Xref: news-archive.icm.edu.pl pl.comp.programming:215784
    [ ukryj nagłówki ]

    niedziela, 20 marca 2022 o 20:36:06 UTC+1 j...@a...pl napisał(a):
    > Dzień dobry!
    >
    > Mam takie pytania do programistów:
    > 1. Jak wam się pracuje z własnymi programami?
    > Chodzi mi o programy zaprojektowane i zakodowane samodzielnie do użytku w pracy lub
    w domu.
    > Może są to jakieś specjalizowane edytory? Albo programy testujące? Albo monitory?
    Albo może nawet jakieś narzędzia do projektowania. Albo do nauki.
    > 2. Czy zaszła jakaś istotna różnica w waszej wydajności?
    >
    > 3. Albo może macie jakieś inne uczucia gdy ich używacie? Np. uczucie dumy lub
    radości.
    >
    > 4. Jak teraz wspominacie używanie wcześniejszych programów które zastąpiliście
    własnymi?

    Od jakiegoś czasu pracuję nad swoim strukturalnym edytorem do programowania
    wizualnego.
    Kiedyś dawałem tutaj link z prezentacji:
    https://www.youtube.com/watch?v=nGba4J-ThEk

    Ten program ciągle jest jeszcze "nieużyteczny", ale wchodzenie z nim w interakcję
    sprawia mi dużo przyjemności.
    Aktualnie pracuję nad tym, żeby można było z nim pracować przy użyciu normalnej
    klawiatury
    (i nie piszę tego na telefonie, tylko na laptopie z normalną klawiaturą)

    W każdym razie mam wrażenie, że to podejście ma bardzo duży potencjał względem
    "tekstowego" podejścia do programowania.

    Z rzeczy, które napisałem i których używam, są moje rozszerzenia językowe dla
    Guile'a:

    https://github.com/plande/grand-scheme

    Za każdym razem, kiedy wykonuję w swoim Emacsie/Geiserze linię

    (use-modules (grand scheme))

    odczuwam dużą przyjemność.

    Ostatnio używałem tego do napisania parsera dla pewnego podzbioru standardu Wireless
    MBus. Ten kod co prawda był bardziej "wykonywalną notatką", niż częścią produktu --
    bo sam produkt to aplikacja mobilna pisana we frameworku Flutter, i języku
    programowania Dart.

    O języku Dart mam dość dobre zdanie; jednak jak przepisałem na to parser, to był
    prawie dwukrotnie dłuższy, niż ten w Schemie, i zamiast przyjemności sprawiał swoistą
    bolesność.

    Nie wiem też, czy to się liczy, ale mam napisanych kilka funkcji do Emacsa.

    Moja ulubiona jest ta:

    (defun kill-whitespace-or-sexp ()
    "Kill the whitespace between two non-whitespace characters"
    (interactive "*")
    (save-excursion
    (save-restriction
    (save-match-data
    (if (string-match "[ \t\r\n]" (string (char-after)))
    (progn
    (re-search-forward "[ \t\r\n]+" nil t)
    (replace-match "" nil nil))
    (kill-sexp))))))

    (global-set-key (kbd "M-<delete>") 'kill-whitespace-or-sexp)

    Działa to w taki sposób, że jak naciskam Alt+Delete,
    to jeżeli kursor jest na jakimś białym znaku,
    to kasuje całą sekwencję białych znaków od kursora
    do najbliższego nie-białego znaku. Natomiast w przeciwnym razie
    wycina mi do schowka wyrażenie zaczynające się na kursorze
    (przy czym wyrażenie to albo jakiś symbol/identyfikator/literał,
    albo coś pomiędzy nawiasem otwierającym i odpowiadającym mu
    nawiasem zamykającym).

    Pewnie łatwiej to "odczuć", niz opisać.

    Na co dzień pracuję w Emacsie działającym w Uniksowym terminalu,
    i mam sporo różnych sktyptów i małych narzędzi do generowania kodu.

    Jeżeli idzie o wydajność, to trochę ciężko to zmierzyć.
    Na pewno demoralizujące są długie czasy budowania.
    Mam w pracy jeden projekt w C, którego zbudowanie zajmuje
    kilka minut, i te kilka minut trochę odbiera skupienie.

    Ze Flutterem jest podobnie, przy czym tutaj jest więcej irytacji:
    czasem wyjdzie jakaś nowa wersja jakiegoś komponentu,
    i projekt, który w piątek jeszcze się budował, w poniedziałek
    już nie chce, bo trzeba gdzieś podbić jakąś wersję. No i irytuje
    to, że nie wiem, co tam się dzieje.

    (Jak piszę we Flutterze, używam Android Studio. Robię to trochę
    z ciekawości, żeby poznać, jak "mainstream" wyobraża sobie to,
    jak powinna wyglądać praca programisty - i szczerze mówiąc
    nie mam o tym wyobrażeniu najlepszego zdania. W Emacsie
    i terminalu mogę spokojnie programować nawet na małym telefonie,
    natomiast pracy w IntelliJ bez dwóch dużych monitorów nie
    jestem w stanie sobie wyobrazić).

    W przypadku programowania w Emacsie w Lispie (z wtyczkami
    w rodzaju Geiser) niesamowite dla produktywności jest też to,
    że wszystkie kawałki programu mogę wykonywać na bieżąco
    - że nie ma tego durnego cyklu "edycja-kompilacja-uruchomienie",
    tylko na bieżąco "gadam" z interpreterem.

    Taki sposób pracy był dla mnie wielkim odkryciem,
    ale oczywiście w tej możliwości nie ma żadnej mojej zasługi.


Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: