-
Data: 2022-03-27 22:35:27
Temat: Re: Jak Wam się pracuje z samodzielnie zaprojektowanymi i zakodowanymi programami?
Od: Maciek Godek <g...@g...com> szukaj wiadomości tego autora
[ pokaż wszystkie 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.
Następne wpisy z tego wątku
- 03.07.22 14:59 Jacek Marcin Jaworski
Najnowsze wątki z tej grupy
- John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2025
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
- ,,Polski przemysł jest w stanie agonalnym" - podkreślił dobitnie, wskazując na brak zamówień.
- Rewolucja w debugowaniu!!! SI analizuje zrzuty pamięci systemu M$ Windows!!!
- Brednie w wiki - hasło Dehomag
- Perfidne ataki krakerów z KRLD na skrypciarzy JS i Pajton
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- U nas propagują modę na SI, a w Chinach naukowcy SI po kolei umierają w wieku 40-50lat
- C++. Podróż Po Języku - komentarz
- "Wuj dobra rada" z KDAB rozważa: Choosing the Right Programming Language for Your Embedded Linux Device
- Nowa ustawa o ochronie praw autorskich - opis problemu i szkic ustawy
- Alg. kompresji LZW
Najnowsze wątki
- 2025-05-23 Gdańsk => Programista Delphi <=
- 2025-05-23 Warszawa => Senior Key Account Manager IT <=
- 2025-05-23 Zielonka => Key Account Manager IT <=
- 2025-05-23 Poznań => Konsultant wdrożeniowy Comarch XL (Logistyka, WMS, Produkc
- 2025-05-23 Elektrozawór do tlenu
- 2025-05-23 Białystok => NMS System Administrator <=
- 2025-05-23 Warszawa => Cloud Engineer (Azure) <=
- 2025-05-23 Warszawa => Inżynier cloud (Azure) <=
- 2025-05-23 Warszawa => Programista Full Stack .Net <=
- 2025-05-23 Warszawa => Software .Net Developer <=
- 2025-05-23 Łódź => Programista Mainframe (z/OS, Assembler) <=
- 2025-05-23 Warszawa => Starszy Programista C <=
- 2025-05-23 Polskie Obserwatorium Bezpiecze?stwa Ruchu Drogowego (POBR) mapa wypadk??w
- 2025-05-23 Warszawa => Team Lead Data Engineer (obszar Snowflake) <=
- 2025-05-23 Warszawa => International Freight Forwarder <=