[PD] Design / Philosophy principles behind Pd development

Albert Rafetseder albert.rafetseder+pd at univie.ac.at
Tue Jan 4 16:09:01 CET 2022


Hi Jérôme,

Likewise!

> A pd patch must be run in old computers. Is it related to the choice
> of C Language and Tcl TK ? Could be also related to some ecological
> vision about new technologies obsolescence and anti-productivism ?

What I understand from one of Miller's papers relates (somehow) to the
"old computers" part. My summary: In the 1980's, GUI and sound
generation used to be separate partly because the computers were not
powerful to do both at the same time, and partly because people built
upon existing designs that were split like that.

(See pages 6 and onward in "Max at Seventeen",
http://msp.ucsd.edu/Publications/dartmouth-reprint.pdf )

The same paper probably answers aspects of your question about MUSIC and
Max Mathew as well. (See page 2.)



> The number of lines of code must be less than 10 000 ?

Another paper by Miller mentions 100k for a version of Max, and
indicates the same limit should apply to Pd: "[...] at 100,000 lines of
code, Max/FTS was approaching the limit of maintainability."

(This is on page 5 of "The Deadly Embrace Between Music Software and Its
Users", http://msp.ucsd.edu/Publications/pdf_EMS14_puckette.pdf )

The current number of source lines of code per the `sloccount` utility
is 118,532 across all programming languages. C accounts for about 85% of
that. More details below.

Best regards,
  Albert.

----8<----

$ sloccount --version
2.26
$ git branch --verbose
* master bad155d2 oops, version number to 0.52-1 (forgot to fold in the
last 'develop' fixes and now can't rename 0.52-0)
$ sloccount .
[...lots of setup messages omitted...]
Categorizing files.
Finding a working MD5 command....
Found a working MD5 command.
Computing results.


SLOC    Directory    SLOC-by-Language (Sorted)
73275   src_top_dir     ansic=73275
19223   portaudio       ansic=16072,cpp=3108,sh=43
8678    tcl             tcl=8671,sh=7
6850    extra           ansic=6850
4926    portmidi        ansic=4888,sh=38
4169    m4              sh=4169
548     mac             sh=548
470     msw             sh=470
202     doc             ansic=202
60      libpd           ansic=60
56      po              tcl=56
44      linux           sh=44
16      md              awk=13,sh=3
15      top_dir         sh=15
0       asio            (none)
0       autom4te.cache  (none)
0       bin             (none)
0       font            (none)
0       man             (none)


Totals grouped by language (dominant language first):
ansic:       101347 (85.50%)
tcl:           8727 (7.36%)
sh:            5337 (4.50%)
cpp:           3108 (2.62%)
awk:             13 (0.01%)




Total Physical Source Lines of Code (SLOC)                = 118,532
Development Effort Estimate, Person-Years (Person-Months) = 30.10 (361.19)
 (Basic COCOMO model, Person-Months = 2.4 * (KSLOC**1.05))
Schedule Estimate, Years (Months)                         = 1.95 (23.44)
 (Basic COCOMO model, Months = 2.5 * (person-months**0.38))
Estimated Average Number of Developers (Effort/Schedule)  = 15.41
Total Estimated Cost to Develop                           = $ 4,066,015
 (average salary = $56,286/year, overhead = 2.40).
SLOCCount, Copyright (C) 2001-2004 David A. Wheeler
SLOCCount is Open Source Software/Free Software, licensed under the GNU GPL.
SLOCCount comes with ABSOLUTELY NO WARRANTY, and you are welcome to
redistribute it under certain conditions as specified by the GNU GPL
license;
see the documentation for details.
Please credit this data as "generated using David A. Wheeler's 'SLOCCount'."





More information about the Pd-list mailing list