Login  Register

Xcode's Swift Playground

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
29 messages Options Options
Embed post
Permalink
12
Reply | Threaded
Open this post in threaded view
| More
Print post
Permalink

Re: Xcode's Swift Playground

jfabry
963 posts

On Jun 3, 2014, at 12:32 PM, Camille Teruel <[hidden email]> wrote:

>
> On 3 juin 2014, at 17:34, Johan Fabry <[hidden email]> wrote:
>
>>
>> On Jun 3, 2014, at 4:21 AM, Camille Teruel <[hidden email]> wrote:
>>
>>>> To what I understand, types are inferred, it is not statically typed. Am I wrong ?
>>>
>>> If there is type inference then it is statically typed (at least partially if not every variable type can be inferred)
>>
>> To repeat myself: this is not the case. Example is the RoelTyper.
>
> Yes, there are many type inferencers for dynamically-typed languages.
> But that's not because one builds a type inferencer for say Smalltalk that I can say "Smalltalk has type inference": the inferencer is not integrated within the language, it's just an analysis tool on top.
> If someone says that his language has type inference, he means that the type inferencer is built into the language, and normally there is some type checking and/or the compiler is designed to leverage type information which means that the language is at least partially statically-typed (if not entirely).

I tend to disagree: in the case of Smalltalk the border between the language and the toolchain is quite blurry. Is the browser part of the language? Refactoring support? Type inferencer? Where do you draw the line? I can have my Smalltalk dialect with type inferencing while the language is dynamically typed.

And that does not take into account all the fancy type stuff such as gradual typing, like in Gradualtalk, optional typing like Pegon (if I’m not mistaken).

> Because if a language does no type checking nor type-based optimisations, for what purpose would it have type inference built into it?

Documentation. Static types are a good form of documentation, when done right. :-)

---> Save our in-boxes! http://emailcharter.org <---

Johan Fabry   -   http://pleiad.cl/~jfabry
PLEIAD lab  -  Computer Science Department (DCC)  -  University of Chile


Reply | Threaded
Open this post in threaded view
| More
Print post
Permalink

Re: Xcode's Swift Playground

stepharo
5159 posts
In reply to this post by jfabry
Nicolas Passerini and Pablo Tesone are working on a type inferencer for
Pharo  and this is exciting :)

On 3/6/14 17:59, Johan Fabry wrote:

> On Jun 3, 2014, at 4:57 AM, Yuriy Tymchuk <[hidden email]> wrote:
>
>> We have to do some type inference (for tools) some time. Should be fun. (by the way, is there something like that already?)
> There has been some work done on type inference for Smalltalk, the RoelTyper example that I keep mentioning worked on Squeak and there was a version on VW that Roel and I looked at in Gent a couple of years ago, but we did not go that way. More recently there was a google summer of code project on concrete type inference for Pharo if I am not mistaken.
>
>
> ---> Save our in-boxes! http://emailcharter.org <---
>
> Johan Fabry   -   http://pleiad.cl/~jfabry
> PLEIAD lab  -  Computer Science Department (DCC)  -  University of Chile
>
>
>


Reply | Threaded
Open this post in threaded view
| More
Print post
Permalink

Re: Xcode's Swift Playground

Henrik Sperre Johansen
1774 posts
In reply to this post by camille teruel

On 03 Jun 2014, at 6:32 , Camille Teruel <[hidden email]> wrote:


On 3 juin 2014, at 17:34, Johan Fabry <[hidden email]> wrote:


On Jun 3, 2014, at 4:21 AM, Camille Teruel <[hidden email]> wrote:

To what I understand, types are inferred, it is not statically typed. Am I wrong ?

If there is type inference then it is statically typed (at least partially if not every variable type can be inferred)

To repeat myself: this is not the case. Example is the RoelTyper.

Yes, there are many type inferencers for dynamically-typed languages.
But that's not because one builds a type inferencer for say Smalltalk that I can say "Smalltalk has type inference": the inferencer is not integrated within the language, it's just an analysis tool on top.
If someone says that his language has type inference, he means that the type inferencer is built into the language, and normally there is some type checking and/or the compiler is designed to leverage type information which means that the language is at least partially statically-typed (if not entirely).
Because if a language does no type checking nor type-based optimisations, for what purpose would it have type inference built into it?

Inferred types have an often overlooked purpose that, IMHO, in dynamic languages, is their biggest benefit. 
That being, it can reduce the number of false positives in common development actions such as auto-complete, searching for implementors, etc.

A pharo with built-in type inference would be no better.
A pharo with built-in type inference, and tools utilizing it, would.

It’s a bit of a shame that programmer productivity is a less favourable research area than optimization, when in that case, using the much cheaper type info from PIC’s instead, yield equivalent results.

Cheers,
Henry

signature.asc (859 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
| More
Print post
Permalink

Re: Xcode's Swift Playground

Sean P. DeNigris
Administrator
5777 posts
In reply to this post by aglynn42
aglynn42 wrote
...then remember 20000 arcane
commands just to get a project built, never mind debug it
+1. Regardless of total size, uniformity is a huge win. There is simplicity in eliminating the context switching from writing code in a language, to configuring the build system in its own (maybe equally complex) language, then learning gdb or whatever...

That they ultimately do the same thing if you consider the complex syntax of one along side the entire library of the other is a Turing tar pit argument.
Cheers,
Sean
Reply | Threaded
Open this post in threaded view
| More
Print post
Permalink

Re: Xcode's Swift Playground

S Krish
360 posts
In reply to this post by Tudor Girba-2
+100
 
I love this playground. Will explore it sometime.. and see if I can participate first in building tools for use and then dive into its frameworks ..!
 
To get started I will need to have a minimum of Oracle connection rather than PostGres .. to make it worthwhile as I play with it. Any heads up on that is nice.. 


On Tue, Jun 3, 2014 at 12:45 PM, Tudor Girba <[hidden email]> wrote:
Hi,

The work on GToolkit goes in this direction. Funny enough, we also have a Playground :).

Look here for an example:

More will come in this direction. I happen to believe that this is the area with the largest potential in Pharo, and it would be great to put more effort around it. If people have an interest to participate, please just let me know.

Cheers,
Doru



On Tue, Jun 3, 2014 at 9:02 AM, darrinm <[hidden email]> wrote:
Here's an example of the Playground in use:
https://developer.apple.com/library/prerelease/ios/recipes/xcode_help-source_editor/ExploringandEvaluatingSwiftCodeinaPlayground/ExploringandEvaluatingSwiftCodeinaPlayground.html#//apple_ref/doc/uid/TP40009975-CH26




--
View this message in context: http://forum.world.st/Xcode-s-Swift-Playground-tp4761425p4761431.html
Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.




--

"Every thing has its own flow"

Reply | Threaded
Open this post in threaded view
| More
Print post
Permalink

Re: Xcode's Swift Playground

Clément Béra
1053 posts
In reply to this post by Henrik Sperre Johansen



2014-06-04 11:33 GMT+02:00 Henrik Johansen <[hidden email]>:

On 03 Jun 2014, at 6:32 , Camille Teruel <[hidden email]> wrote:


On 3 juin 2014, at 17:34, Johan Fabry <[hidden email]> wrote:


On Jun 3, 2014, at 4:21 AM, Camille Teruel <[hidden email]> wrote:

To what I understand, types are inferred, it is not statically typed. Am I wrong ?

If there is type inference then it is statically typed (at least partially if not every variable type can be inferred)

To repeat myself: this is not the case. Example is the RoelTyper.

Yes, there are many type inferencers for dynamically-typed languages.
But that's not because one builds a type inferencer for say Smalltalk that I can say "Smalltalk has type inference": the inferencer is not integrated within the language, it's just an analysis tool on top.
If someone says that his language has type inference, he means that the type inferencer is built into the language, and normally there is some type checking and/or the compiler is designed to leverage type information which means that the language is at least partially statically-typed (if not entirely).
Because if a language does no type checking nor type-based optimisations, for what purpose would it have type inference built into it?

Inferred types have an often overlooked purpose that, IMHO, in dynamic languages, is their biggest benefit. 
That being, it can reduce the number of false positives in common development actions such as auto-complete, searching for implementors, etc.

A pharo with built-in type inference would be no better.
A pharo with built-in type inference, and tools utilizing it, would.

It’s a bit of a shame that programmer productivity is a less favourable research area than optimization, when in that case, using the much cheaper type info from PIC’s instead, yield equivalent results.

This is actually possible in Pharo.

If you compile the Cog VM with the Sista Cogit, you have then in addition the introspection primitive that returns branch and send data from native code methods.

Now you cannot use these inferred types for tools. There are 3 main issues, one is that the VM answers you concrete types and not an abstract type, the second is that not all message sends have type information (the method may not be linked to a native code method, the message send may not have been used since the native code method has been compiled and megamorphic send sites have no type information) and the last issue is that the type inferred are common types, if you can use another type in an uncommon case you may not see it.
 
- you needs a type inferencer for tools.
- you need type information from the inline caches for optimizations.

And as proven in the early 90s type inferencer does not work well to optimize dynamic object oriented language and type-feedback does not work well for tools as I explained.

Clement

Cheers,
Henry

Reply | Threaded
Open this post in threaded view
| More
Print post
Permalink

Re: Xcode's Swift Playground

Offray
539 posts
In reply to this post by S Krish
I would like to help with the playground too. In several threads I have
argued about a tree/outliner like interface for organizing playgrounds
and making exploratory computation and visual data narratives. In fact I
have trying to understand how to build my own outliner from Moosee
browsers, but I have hit a wall about the use of "display: children:"
syntax for trees, but still no answer. Anyway playgrounds are a big
improvement on user experience and I hope to help with them.

Cheers,

Offray

On 06/04/2014 10:48 PM, S Krish wrote:

> +100
> I love this playground. Will explore it sometime.. and see if I can participate
> first in building tools for use and then dive into its frameworks ..!
> To get started I will need to have a minimum of Oracle connection rather than
> PostGres .. to make it worthwhile as I play with it. Any heads up on that is nice..
>
>
> On Tue, Jun 3, 2014 at 12:45 PM, Tudor Girba <[hidden email]
> <mailto:[hidden email]>> wrote:
>
>      Hi,
>
>      The work on GToolkit goes in this direction. Funny enough, we also have a
>      Playground :).
>
>      Look here for an example:
>      http://www.humane-assessment.com/blog/dynamic-exploration-of-a-postgres-db-with-the-gtinspector/
>
>      More will come in this direction. I happen to believe that this is the area
>      with the largest potential in Pharo, and it would be great to put more
>      effort around it. If people have an interest to participate, please just let
>      me know.
>
>      Cheers,
>      Doru
>
>
>
>      On Tue, Jun 3, 2014 at 9:02 AM, darrinm <[hidden email]
>      <mailto:[hidden email]>> wrote:
>
>          Here's an example of the Playground in use:
>          https://developer.apple.com/library/prerelease/ios/recipes/xcode_help-source_editor/ExploringandEvaluatingSwiftCodeinaPlayground/ExploringandEvaluatingSwiftCodeinaPlayground.html#//apple_ref/doc/uid/TP40009975-CH26
>
>
>
>
>          --
>          View this message in context:
>          http://forum.world.st/Xcode-s-Swift-Playground-tp4761425p4761431.html
>          Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
>
>
>
>
>      --
>      www.tudorgirba.com <http://www.tudorgirba.com>
>
>      "Every thing has its own flow"
>
>


Reply | Threaded
Open this post in threaded view
| More
Print post
Permalink

Re: Xcode's Swift Playground

Tudor Girba-2
7411 posts
Hi,

Sorry I could not reply earlier. I will search the other mails where you ask the question and address it.

Cheers,
Doru



On Mon, Aug 4, 2014 at 11:59 PM, Offray Vladimir Luna Cárdenas <[hidden email]> wrote:
I would like to help with the playground too. In several threads I have argued about a tree/outliner like interface for organizing playgrounds and making exploratory computation and visual data narratives. In fact I have trying to understand how to build my own outliner from Moosee browsers, but I have hit a wall about the use of "display: children:" syntax for trees, but still no answer. Anyway playgrounds are a big improvement on user experience and I hope to help with them.

Cheers,

Offray


On 06/04/2014 10:48 PM, S Krish wrote:
+100
I love this playground. Will explore it sometime.. and see if I can participate
first in building tools for use and then dive into its frameworks ..!
To get started I will need to have a minimum of Oracle connection rather than
PostGres .. to make it worthwhile as I play with it. Any heads up on that is nice..


On Tue, Jun 3, 2014 at 12:45 PM, Tudor Girba <[hidden email]
<mailto:[hidden email]>> wrote:

     Hi,

     The work on GToolkit goes in this direction. Funny enough, we also have a
     Playground :).

     Look here for an example:
     http://www.humane-assessment.com/blog/dynamic-exploration-of-a-postgres-db-with-the-gtinspector/

     More will come in this direction. I happen to believe that this is the area
     with the largest potential in Pharo, and it would be great to put more
     effort around it. If people have an interest to participate, please just let
     me know.

     Cheers,
     Doru



     On Tue, Jun 3, 2014 at 9:02 AM, darrinm <[hidden email]
     <mailto:[hidden email]>> wrote:

         Here's an example of the Playground in use:
         https://developer.apple.com/library/prerelease/ios/recipes/xcode_help-source_editor/ExploringandEvaluatingSwiftCodeinaPlayground/ExploringandEvaluatingSwiftCodeinaPlayground.html#//apple_ref/doc/uid/TP40009975-CH26




         --
         View this message in context:
         http://forum.world.st/Xcode-s-Swift-Playground-tp4761425p4761431.html
         Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.




     --
     www.tudorgirba.com <http://www.tudorgirba.com>


     "Every thing has its own flow"







--

"Every thing has its own flow"
Reply | Threaded
Open this post in threaded view
| More
Print post
Permalink

Re: Xcode's Swift Playground

Offray
539 posts
Hi Doru,

I have seen your answer on the thread. I hope to make some test tonight
and keep you posted.

Thanks,

Offray

On 08/05/2014 12:13 AM, Tudor Girba wrote:

> Hi,
>
> Sorry I could not reply earlier. I will search the other mails where you ask the
> question and address it.
>
> Cheers,
> Doru
>
>
>
> On Mon, Aug 4, 2014 at 11:59 PM, Offray Vladimir Luna Cárdenas
> <[hidden email] <mailto:[hidden email]>> wrote:
>
>      I would like to help with the playground too. In several threads I have
>      argued about a tree/outliner like interface for organizing playgrounds and
>      making exploratory computation and visual data narratives. In fact I have
>      trying to understand how to build my own outliner from Moosee browsers, but
>      I have hit a wall about the use of "display: children:" syntax for trees,
>      but still no answer. Anyway playgrounds are a big improvement on user
>      experience and I hope to help with them.
>
>      Cheers,
>
>      Offray
>
>
>      On 06/04/2014 10:48 PM, S Krish wrote:
>
>          +100
>          I love this playground. Will explore it sometime.. and see if I can
>          participate
>          first in building tools for use and then dive into its frameworks ..!
>          To get started I will need to have a minimum of Oracle connection rather
>          than
>          PostGres .. to make it worthwhile as I play with it. Any heads up on
>          that is nice..
>
>
>          On Tue, Jun 3, 2014 at 12:45 PM, Tudor Girba <[hidden email]
>          <mailto:[hidden email]>
>          <mailto:[hidden email] <mailto:[hidden email]>>> wrote:
>
>                Hi,
>
>                The work on GToolkit goes in this direction. Funny enough, we also
>          have a
>                Playground :).
>
>                Look here for an example:
>          http://www.humane-assessment.__com/blog/dynamic-exploration-__of-a-postgres-db-with-the-__gtinspector/
>          <http://www.humane-assessment.com/blog/dynamic-exploration-of-a-postgres-db-with-the-gtinspector/>
>
>                More will come in this direction. I happen to believe that this is
>          the area
>                with the largest potential in Pharo, and it would be great to put more
>                effort around it. If people have an interest to participate,
>          please just let
>                me know.
>
>                Cheers,
>                Doru
>
>
>
>                On Tue, Jun 3, 2014 at 9:02 AM, darrinm <[hidden email]
>          <mailto:[hidden email]>
>                <mailto:[hidden email] <mailto:[hidden email]>>> wrote:
>
>                    Here's an example of the Playground in use:
>          https://developer.apple.com/__library/prerelease/ios/__recipes/xcode_help-source___editor/__ExploringandEvaluatingSwiftCod__einaPlayground/__ExploringandEvaluatingSwiftCod__einaPlayground.html#//apple___ref/doc/uid/TP40009975-CH26
>          <https://developer.apple.com/library/prerelease/ios/recipes/xcode_help-source_editor/ExploringandEvaluatingSwiftCodeinaPlayground/ExploringandEvaluatingSwiftCodeinaPlayground.html#//apple_ref/doc/uid/TP40009975-CH26>
>
>
>
>
>                    --
>                    View this message in context:
>          http://forum.world.st/Xcode-s-__Swift-Playground-__tp4761425p4761431.html <http://forum.world.st/Xcode-s-Swift-Playground-tp4761425p4761431.html>
>                    Sent from the Pharo Smalltalk Users mailing list archive at
>          Nabble.com.
>
>
>
>
>                --
>          www.tudorgirba.com <http://www.tudorgirba.com> <http://www.tudorgirba.com>
>
>
>                "Every thing has its own flow"
>
>
>
>
>
>
>
> --
> www.tudorgirba.com <http://www.tudorgirba.com>
>
> "Every thing has its own flow"
>


12