年を取るほど、カンマの重要性は低くなります。 読者に彼を一時停止する場所を決定させます。 -エリザベス・クラークソン・ズワート
このようなことは、20年前にコードにコメントしました(
注意、ちょっとしたドラマ ):
counter++;
char* pos = buffer;
, ? ! , . ( , , , — ).
junior-. “
The Tipping Point”, 2- , , . , . , :
, , , , , , , . - , , , ...
. . - , .
:
. , , . .
, , , — , . , , . , , .
. .
, , :
(defun js2-parse-variables (in-for decl-type)
" 'var', 'const' 'let' for-loop .
IN-FOR , init- for-.
DECL-TYPE : VAR CONST LET, .
"
(let ((result (make-js2-var-decl-node))
destructuring-init
destructuring
s start tt init name node
(continue t))
(while continue
(setq destructuring nil
s nil
tt (js2-peek-token)
start js2-token-start
init nil)
(if (or (= tt js2-LB) (= tt js2-LC))
(setq destructuring (js2-parse-primary-expr))
(js2-must-match js2-NAME "msg.bad.var")
(setq name (make-js2-name-node))
(js2-define-symbol decl-type js2-ts-string))
(when (js2-match-token js2-ASSIGN)
(setq init (js2-parse-assign-expr in-for)))
(if destructuring
(progn
(if (null init)
(unless in-for
(js2-report-error "msg.destruct.assign.no.init")))
(setq node (make-js2-destructuring-init-node :start start
:end js2-ts-cursor
:lhs destructuring
:initializer init))
(js2-node-add-children node destructuring init))
(setq node (make-js2-var-init-node :start start
:end js2-ts-cursor
:name name
:initializer init))
(js2-node-add-children node name init))
(js2-block-node-push result node)
(js2-node-add-children result node)
(unless (js2-match-token js2-COMMA)
(setq continue nil)))
result))
, 20 . , !
! ! “ !!!”, .
, Java Javascript, Emacs-Lisp , , .
, , . - Java Javascript Mozilla Rhino, - C- SpiderMonkey, , , - . .. , , . , , “” .
Java, Emacs-Lisp, .
: . API-. , .
, , . , . (, -). , , , .
, , . , , , , ? , .
. , - ( - ), , , , . “ ” — , .
. , ,
, - . , , , , .
, , - “5-6 ”, — “”. : , 50 50 , , , . — .
, , , , . , , -, . , , - .
, “ ”. , . , , - . ( -
Finnegan's Wake, ). — , .
, , , .
, ( ), , , . , , , . , .
, - . . ? , , . — . , . , , .
, , , . — , . , . .
, .
, ? ? , , , , . . , , . , .
, , . , , . , *-----*.
, — . , , . , . ! — .
— -. . , - — . , , .
, , -. . , , . , , , , .
,
— . , : . — , . , , . — . , , .
, , , , ,
— .
-.
, , . . , .
, . , ? , “ ” . , , . - , - , — . .
, , . , - , — . , . . , - .
, , “ ”. , — , “ ”. , “-”. ( , , ).
, . , . , : . , — . -, , , . , .
- , “ ”. , . . . . , ( , ). , , , . , ,
.
. — , — . . — . — . , , , , Computer Science. — Computer Science. .
, , C++/Java ( Perl/Python/Ruby Modula-3/SML/Haskell) , , — , .
, . , , . , , , -, . , ? , . — , — API, . , , . , , , .
, C, Java. . Java , C, . — . , OO. , - , SmallTalk Lisp, .
( ) , .
, Java, — , , -, - . UML-, , - .
Perl, Python Ruby .. ? . — ( ). , ( C) , . , . , , , - Larry Wall java- . , … .
Haskell, OCaml ? 45- , , . . -- , “ ”. , . .
. , , “”. , — ? ( ), , . , “” , - , . java — , , , java. , java — “”.
“” . — , , — , . , , , . Java C++ — . - , , , “” ( ), , . ( , scala-, —
).
, , “”. , C++ Java : , .
. , , , ( ). , C++ Java , , - . , .
Java . , . . : . , , , . — .
“” . , , , . . , , , . —
. . — , , .
Apache Struts WebWork . . , , , Struts “ Struts 2”:
… Struts 1 . , Ajax, .
Struts 2 Struts 1 , . WebWorks Struts 2.
JUnit 4. , , , Java 5 — . , , — , - . . — , .
Java-, , . IDE .
, Struts ? , Java, , IDE. IDE , . , , . , IDE , , , .
opensource- Java, -. - , , - Java. — Java (, -, Pascal), . , , .
“” . , . , , , , .
, .
— . , , .
, : ! — .
, , Java. . ?
MyFunctionCallResult
ValueOne
ValueTwo
(, )? ( ) , ?
, :
— . , .
, .
— API. . , , . — , -, .
. , . , — - , , , . .
, , , .
. , , “---”. , . . , . , . , , . , , - , , .
, !