Thanks for the feedback. I agree with everything you guys wr=ote and told them pretty much the same. I will pass along your comments ver=batim though as I think it will help them out.
Most of it as I said is just new-guy stuff and is easily exp=lained but I found the fresh eyes interesting and thought you might too.
------------------------------------
Sent from phone
-Dan Strong
http://DanStrong.com
On Aug 4, 2014, at 9:16 AM, Dan Strong <dan@danstrong.com> wrote:
> I've begun teaching some php/CF/other-languages-savvy developers W=ebDNA and had them do a test project. I thought you'd find their feedba=ck interesting.
>
> Obviously some things they just need to be shown how to do in WebDNA,<=br>
Obviously ;-)
> but overall this is some good feedback.
>
> 1. No session support: We must use cookies and built-in db instead.
Umm... PHP is not hugely different from WebDNA in their $_SESSION functiona=lity vs. our ORDERFILE. =C2=A0Only, if we want to sustain our session via c=ookies, we just have to manually set a cookie with the value of [cart] and =call it on each page is all. Then you don=E2=80=99t have to pass the cart v=alues in all the href=E2=80=99s. It=E2=80=99s really no more lines of code =than PHP.
>
> 2. No JSON object (encode/decode) support
JSON is simply text. Tom Duke recently posted a basic parser he wrote. Anyo=ne that really needs it should be able to whip up a function library for th=is.
>
> 3. Some limitations in File Handling: No absolutely path support, only= relative paths are supported.
Try the prefs.
>
> 4. Db Connections are limited.
Agreed=E2=80=A6 but to WebDNA=E2=80=99s defense, it contains it=E2=80=99s o=wn solution, where other languages do not.
>
> 5. Language syntax is limited, so it is hard to implement some algorit=hms.
Possible, but I have not run into much of that.
> 6. Not easy to debug, lacks editor/debug support
I agree it could be better... but you get used to debugging in WebDNA, and =you learn to build tools to help you with that.
In the end, WebDNA is simpler to code and easier to read.. so if you use go=od syntax, it=E2=80=99s not that hard to isolate bugs.
> 7. Built-in db has poor performance (poor query language : NO group, s=um... etc).
No group / sum??? =C2=A0=E2=80=A6News to me. :-)
> 8. Array object is much more limited than Array objects in Python and =PHP
WebDNA=E2=80=99ers don=E2=80=99t like Arrays=E2=80=A6 they are cumbersome. =We like [table]=E2=80=99s,[formvarialbes]=E2=80=99s,[listvariables]=E2=80==99s etc.. and lists.
>
> 9. Seems that it does not support object model, and its concepts are n=ot similar to other common scripting languages.
WebDNA=E2=80=99ers think different (and get things done faster / easier / b=etter)
OOP is over-complicated and not needed for 95% of Web-App projects in my hu=mble opinion. =C2=A0However, like javascript being a classes language, ther=e are
fairly easy ways to mimic abstraction, encapsulation, inheritance , etc=E2==80=A6 using [function..] (and it=E2=80=99s preparse param), and [scope]
>
> 10. Does not support WHILE loop
written off the top of my head..
[loop start=3D1&end=3D9999999]
=C2=A0 [if [x]<1000]
=C2=A0 =C2=A0 [then]
=C2=A0 =C2=A0 =C2=A0 <doSomething>
=C2=A0 =C2=A0 =C2=A0 [math]x=3D[x]+1[/math]
=C2=A0 =C2=A0 [/then]
=C2=A0 =C2=A0 [else]
=C2=A0 =C2=A0 =C2=A0 [break]
=C2=A0 =C2=A0 [/else]
=C2=A0 [/if]
[/loop]
then package it up in a function named [EmailDansStudentsUntilTheyGetIT-Whi=le ]
[function name=3D EmailDansStudentsUntilTheyGetIT-While]
[loop start=3D1&end=3D9999999]
=C2=A0 [if [x]<[stop]]
=C2=A0 =C2=A0 [then]
=C2=A0 =C2=A0 =C2=A0 <sendDansStudentAnEmail>
=C2=A0 =C2=A0 =C2=A0 [math show=3DF]x=3D[x]+1[/math]
=C2=A0 =C2=A0 [/then]
=C2=A0 =C2=A0 [else]
=C2=A0 =C2=A0 =C2=A0 [break]
=C2=A0 =C2=A0 [/else]
=C2=A0 [/if]
[/loop]
[/function]
[EmailDansStudentsUntilTheyGetIT-While x=3D1&stop=3D1000]
>
> 11. No reading of text files (or not yet found the way)
Now, why can=E2=80=99t WebDNA read text files again? :-)
>
> 12. No support for CURL, so working with web services can be a problem=.
..And I thought Dan was a curl/cron guy?
>
> 13. There is some special handles with =E2=80=9C\ln=E2=80=9D character= while WebDNA works with HTML=E2=80=A6.<captured to avoid this issues ne=xt times>
I don=E2=80=99t know what this means=E2=80=A6=E2=80=A6=E2=80=A6=E2=80=A6=E2==80=A6=E2=80=A6^ =C2=A0 do you mean the newline escape sequence =E2=80=98\n==E2=80=99? =C2=A0What is the problem?
My 2 biggest Pet Peeve's in PHP vs WebDNA (besides having to use an ext=ernal database in PHP)
=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94ann=oying use of the echo / print command
PHP:
<?PHP
=C2=A0 $text1 =3D =E2=80=9CHello World=E2=80=9D;
=C2=A0 echo $text1;
?>
WebDNA:
=C2=A0 [text]text1=3DHello World[/text]
=C2=A0 [text1]
----------------------------------------------------
=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94use= of arrays for everything...
PHP:
<?PHP
=C2=A0 print "<b>Form Vars</b><br />";
=C2=A0 foreach ($_GET as $key =3D> $value) {
=C2=A0 =C2=A0 =C2=A0 print "$key =3D $value<br />";
=C2=A0 }
=C2=A0 foreach ($_POST as $key =3D> $value) {
=C2=A0 =C2=A0 =C2=A0 print "$key =3D $value<br />";
=C2=A0 }
?>
WebDNA:
<b>Form Vars</b><br />
[formvariables]
=C2=A0 [name]=3D[value]<br />
[/formvariables]
---------------------------------------------------------
This message is sent to you because you are subscribed to
the mailing list <talk@webdna.us&g=t;.
To unsubscribe, E-mail to: <talk=-leave@webdna.us>
archives: http://mail.webdna.us/list/talk@webdna.us
Bug Reporting: support@webdna.us
|
Thanks for the feedback. I agree with everything you guys wr=ote and told them pretty much the same. I will pass along your comments ver=batim though as I think it will help them out.
Most of it as I said is just new-guy stuff and is easily exp=lained but I found the fresh eyes interesting and thought you might too.
------------------------------------
Sent from phone
-Dan Strong
http://DanStrong.com
On Aug 4, 2014, at 9:16 AM, Dan Strong <dan@danstrong.com> wrote:
> I've begun teaching some php/CF/other-languages-savvy developers W=ebDNA and had them do a test project. I thought you'd find their feedba=ck interesting.
>
> Obviously some things they just need to be shown how to do in WebDNA,<=br>
Obviously ;-)
> but overall this is some good feedback.
>
> 1. No session support: We must use cookies and built-in db instead.
Umm... PHP is not hugely different from WebDNA in their $_SESSION functiona=lity vs. our ORDERFILE. =C2=A0Only, if we want to sustain our session via c=ookies, we just have to manually set a cookie with the value of [cart] and =call it on each page is all. Then you don=E2=80=99t have to pass the cart v=alues in all the href=E2=80=99s. It=E2=80=99s really no more lines of code =than PHP.
>
> 2. No JSON object (encode/decode) support
JSON is simply text. Tom Duke recently posted a basic parser he wrote. Anyo=ne that really needs it should be able to whip up a function library for th=is.
>
> 3. Some limitations in File Handling: No absolutely path support, only= relative paths are supported.
Try the prefs.
>
> 4. Db Connections are limited.
Agreed=E2=80=A6 but to WebDNA=E2=80=99s defense, it contains it=E2=80=99s o=wn solution, where other languages do not.
>
> 5. Language syntax is limited, so it is hard to implement some algorit=hms.
Possible, but I have not run into much of that.
> 6. Not easy to debug, lacks editor/debug support
I agree it could be better... but you get used to debugging in WebDNA, and =you learn to build tools to help you with that.
In the end, WebDNA is simpler to code and easier to read.. so if you use go=od syntax, it=E2=80=99s not that hard to isolate bugs.
> 7. Built-in db has poor performance (poor query language : NO group, s=um... etc).
No group / sum??? =C2=A0=E2=80=A6News to me. :-)
> 8. Array object is much more limited than Array objects in Python and =PHP
WebDNA=E2=80=99ers don=E2=80=99t like Arrays=E2=80=A6 they are cumbersome. =We like [table]=E2=80=99s,[formvarialbes]=E2=80=99s,[listvariables]=E2=80==99s etc.. and lists.
>
> 9. Seems that it does not support object model, and its concepts are n=ot similar to other common scripting languages.
WebDNA=E2=80=99ers think different (and get things done faster / easier / b=etter)
OOP is over-complicated and not needed for 95% of Web-App projects in my hu=mble opinion. =C2=A0However, like javascript being a classes language, ther=e are
fairly easy ways to mimic abstraction, encapsulation, inheritance , etc=E2==80=A6 using [function..] (and it=E2=80=99s preparse param), and [scope]
>
> 10. Does not support WHILE loop
written off the top of my head..
[loop start=3D1&end=3D9999999]
=C2=A0 [if [x]<1000]
=C2=A0 =C2=A0 [then]
=C2=A0 =C2=A0 =C2=A0 <doSomething>
=C2=A0 =C2=A0 =C2=A0 [math]x=3D[x]+1[/math]
=C2=A0 =C2=A0 [/then]
=C2=A0 =C2=A0 [else]
=C2=A0 =C2=A0 =C2=A0 [break]
=C2=A0 =C2=A0 [/else]
=C2=A0 [/if]
[/loop]
then package it up in a function named [EmailDansStudentsUntilTheyGetIT-Whi=le ]
[function name=3D EmailDansStudentsUntilTheyGetIT-While]
[loop start=3D1&end=3D9999999]
=C2=A0 [if [x]<[stop]]
=C2=A0 =C2=A0 [then]
=C2=A0 =C2=A0 =C2=A0 <sendDansStudentAnEmail>
=C2=A0 =C2=A0 =C2=A0 [math show=3DF]x=3D[x]+1[/math]
=C2=A0 =C2=A0 [/then]
=C2=A0 =C2=A0 [else]
=C2=A0 =C2=A0 =C2=A0 [break]
=C2=A0 =C2=A0 [/else]
=C2=A0 [/if]
[/loop]
[/function]
[EmailDansStudentsUntilTheyGetIT-While x=3D1&stop=3D1000]
>
> 11. No reading of text files (or not yet found the way)
Now, why can=E2=80=99t WebDNA read text files again? :-)
>
> 12. No support for CURL, so working with web services can be a problem=.
..And I thought Dan was a curl/cron guy?
>
> 13. There is some special handles with =E2=80=9C\ln=E2=80=9D character= while WebDNA works with HTML=E2=80=A6.<captured to avoid this issues ne=xt times>
I don=E2=80=99t know what this means=E2=80=A6=E2=80=A6=E2=80=A6=E2=80=A6=E2==80=A6=E2=80=A6^ =C2=A0 do you mean the newline escape sequence =E2=80=98\n==E2=80=99? =C2=A0What is the problem?
My 2 biggest Pet Peeve's in PHP vs WebDNA (besides having to use an ext=ernal database in PHP)
=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94ann=oying use of the echo / print command
PHP:
<?PHP
=C2=A0 $text1 =3D =E2=80=9CHello World=E2=80=9D;
=C2=A0 echo $text1;
?>
WebDNA:
=C2=A0 [text]text1=3DHello World[/text]
=C2=A0 [text1]
----------------------------------------------------
=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94use= of arrays for everything...
PHP:
<?PHP
=C2=A0 print "<b>Form Vars</b><br />";
=C2=A0 foreach ($_GET as $key =3D> $value) {
=C2=A0 =C2=A0 =C2=A0 print "$key =3D $value<br />";
=C2=A0 }
=C2=A0 foreach ($_POST as $key =3D> $value) {
=C2=A0 =C2=A0 =C2=A0 print "$key =3D $value<br />";
=C2=A0 }
?>
WebDNA:
<b>Form Vars</b><br />
[formvariables]
=C2=A0 [name]=3D[value]<br />
[/formvariables]
---------------------------------------------------------
This message is sent to you because you are subscribed to
the mailing list <talk@webdna.us&g=t;.
To unsubscribe, E-mail to: <talk=-leave@webdna.us>
archives: http://mail.webdna.us/list/talk@webdna.us
Bug Reporting: support@webdna.us
DOWNLOAD WEBDNA NOW!
The WebDNA community talk-list is the best place to get some help: several hundred extremely proficient programmers with an excellent knowledge of WebDNA and an excellent spirit will deliver all the tips and tricks you can imagine...