Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Флейм > Новые технологии облегчают программисту жизнь ???


Автор: ZZZkoderZZZ 17.3.2013, 23:02
По-моему современные технологии уже давно усложняют, а не облегчают жизнь программистам. И часто программа на ассемблере будет короче и понятнее, чем на каком-нибудь последнем .NET.

Что вы скажете, посмотрев на такой код (из темы http://forum.vingrad.ru/forum/topic-361684/kw-xaml-wpf-listview-%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D1%8B.html )? Много ли понятно с первого взгляда?
А он производит совершенно элементарные действия.


Код

<Style TargetType="{x:Type ListView}">
        <Setter Property="Background" Value="{StaticResource ControlLightBackground}" />
        <Setter Property="BorderBrush" Value="{StaticResource ControlBorderBrush}" />
        <Setter Property="BorderThickness" Value="1" />
        <Setter Property="Foreground" Value="{StaticResource ControlForegroundWhite}" />
        <Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Auto" />
        <Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Auto" />
        <Setter Property="ScrollViewer.CanContentScroll" Value="True" />
        <Setter Property="VerticalContentAlignment" Value="Center" />
        
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type ListView}">
                    <Border x:Name="Bd" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="2" 
                            BorderBrush="{TemplateBinding BorderBrush}" Background="{TemplateBinding Background}">
                        <ScrollViewer Padding="{TemplateBinding Padding}" Style="{DynamicResource {x:Static GridView.GridViewScrollViewerStyleKey}}">
                            <ItemsPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
                        </ScrollViewer>
                    </Border>
                    <ControlTemplate.Triggers>
                     
                        <Trigger Property="IsGrouping" Value="True">
                            <Setter Property="ScrollViewer.CanContentScroll" Value="False" />
                        </Trigger>
                        <Trigger Property="IsEnabled" Value="False">
                            <Setter Property="Background" TargetName="Bd" Value="{StaticResource DisabledBrush}" />
                            <Setter Property="BorderBrush" TargetName="Bd" Value="{StaticResource DisabledBorderBrush}"/>
                        </Trigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
    <Style x:Key="{x:Static GridView.GridViewScrollViewerStyleKey}" TargetType="{x:Type ScrollViewer}">
        <Setter Property="Focusable" Value="False" />
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type ScrollViewer}">
                    <Grid SnapsToDevicePixels="True" Background="{TemplateBinding Background}">
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="*" />
                            <ColumnDefinition Width="Auto" />
                        </Grid.ColumnDefinitions>
                        <Grid.RowDefinitions>
                            <RowDefinition Height="*" />
                            <RowDefinition Height="Auto" />
                        </Grid.RowDefinitions>
                        <DockPanel Margin="{TemplateBinding Padding}">
                            <ScrollViewer Focusable="False" DockPanel.Dock="Top" HorizontalScrollBarVisibility="Hidden" VerticalScrollBarVisibility="Hidden">
                                <GridViewHeaderRowPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" Margin="2,0,2,0" 
                                                            AllowsColumnReorder="{Binding Path=TemplatedParent.View.AllowsColumnReorder, RelativeSource={RelativeSource TemplatedParent}}" 
                                                            ColumnHeaderContainerStyle="{Binding Path=TemplatedParent.View.ColumnHeaderContainerStyle, RelativeSource={RelativeSource TemplatedParent}}" 
                                                            ColumnHeaderContextMenu="{Binding Path=TemplatedParent.View.ColumnHeaderContextMenu, RelativeSource={RelativeSource TemplatedParent}}" 
                                                            ColumnHeaderTemplate="{Binding Path=TemplatedParent.View.ColumnHeaderTemplate, RelativeSource={RelativeSource TemplatedParent}}" 
                                                            ColumnHeaderTemplateSelector="{Binding Path=TemplatedParent.View.ColumnHeaderTemplateSelector, RelativeSource={RelativeSource TemplatedParent}}" 
                                                            ColumnHeaderToolTip="{Binding Path=TemplatedParent.View.ColumnHeaderToolTip, RelativeSource={RelativeSource TemplatedParent}}" 
                                                            Columns="{Binding Path=TemplatedParent.View.Columns, RelativeSource={RelativeSource TemplatedParent}}" />
                            </ScrollViewer>
                            <ScrollContentPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" x:Name="PART_ScrollContentPresenter"
                                                    Content="{TemplateBinding Content}" ContentTemplate="{TemplateBinding ContentTemplate}" 
                                                    CanContentScroll="{TemplateBinding CanContentScroll}" KeyboardNavigation.DirectionalNavigation="Local" />
                        </DockPanel>
                        <ScrollBar Visibility="{TemplateBinding ComputedHorizontalScrollBarVisibility}" Cursor="Arrow" x:Name="PART_HorizontalScrollBar"
                                   Grid.Row="1" Orientation="Horizontal" ViewportSize="{TemplateBinding ViewportWidth}" Maximum="{TemplateBinding ScrollableWidth}" 
                                   Minimum="0.0" Value="{Binding Path=HorizontalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}" />
                        <ScrollBar Visibility="{TemplateBinding ComputedVerticalScrollBarVisibility}" Cursor="Arrow" x:Name="PART_VerticalScrollBar" 
                                   Grid.Column="1" Orientation="Vertical" ViewportSize="{TemplateBinding ViewportHeight}" Maximum="{TemplateBinding ScrollableHeight}" 
                                   Minimum="0.0" Value="{Binding Path=VerticalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}" />
                        <DockPanel Grid.Column="1" Grid.Row="1" Background="{Binding Path=Background, ElementName=PART_VerticalScrollBar}" LastChildFill="False">
                            <Rectangle Visibility="{TemplateBinding ComputedVerticalScrollBarVisibility}" Width="1" Fill="White" DockPanel.Dock="Left" />
                            <Rectangle Visibility="{TemplateBinding ComputedHorizontalScrollBarVisibility}" Height="1" Fill="White" DockPanel.Dock="Top" />
                        </DockPanel>
                    </Grid>

Автор: SKrivosein 17.3.2013, 23:54
В чем проблема? Зделай то что делают в указаной тобой теме на ASM.  smile 
И незабудь выложит, мы посмотрим! smile 

Автор: CompWorm 18.3.2013, 01:23
в http://forum.vingrad.ru/forum/topic-319915.html

Автор: ZZZkoderZZZ 18.3.2013, 08:13
Цитата(SKrivosein @ 17.3.2013,  23:54)
Зделай то что делают в указаной тобой теме на ASM. 

ASM это применительно разумеется не к Web.

Автор: DarkProg 18.3.2013, 09:59
Цитата(ZZZkoderZZZ @  18.3.2013,  08:13 Найти цитируемый пост)
ASM это применительно разумеется не к Web.

Тогда зачем было сравнивать, если это не применимо?

Автор: baldina 18.3.2013, 10:06
Цитата(ZZZkoderZZZ @  18.3.2013,  08:13 Найти цитируемый пост)
ASM это применительно разумеется не к Web

а что мешает написать cgi модуль на ассемблере?

Автор: ZZZkoderZZZ 18.3.2013, 10:24
Цитата(DarkProg @ 18.3.2013,  09:59)
Тогда зачем было сравнивать, если это не применимо?

Речь не об этом. Такой объем совершенно нечитаемого кода всего лишь задает стиль элемента на форме. 
На простом HTML можно было бы уместить хороший сайт в такой же объем кода (особенно если брать объем в символах, а не строках).

Автор: Zloxa 18.3.2013, 10:37
Цитата(ZZZkoderZZZ @  18.3.2013,  09:13 Найти цитируемый пост)
ASM это применительно разумеется не к Web.

Веб еще молодая платформа, не стабилизировавшаяся.

До тех пор, пока под веб не появится чего-то, вроде того, чем в свое время стал Delphi для win32, разработка под веб будет похожа на разработку под win32 всякими там MFC, OWL и иже с ними

Автор: diadiavova 18.3.2013, 11:42
Цитата(ZZZkoderZZZ @  18.3.2013,  00:02 Найти цитируемый пост)
Что вы скажете, посмотрев на такой код (из темы http://forum.vingrad.ru/forum/topic-361684...0%BD%D1%8B.html )? Много ли понятно с первого взгляда?

Интересно, что бы ты сказал, посмотрев на текст, написанный на суахили? smile 
Цитата(Zloxa @  18.3.2013,  11:37 Найти цитируемый пост)
чем в свое время стал Delphi для win32

Так вот под какую технологию надо кодить. А что же ты раньше молчал?  smile 

Автор: SKrivosein 18.3.2013, 12:29
Даже если это Siverlight с чего ты взял что это WEB?  smile 

Автор: iRUSH 18.3.2013, 12:57
Цитата(ZZZkoderZZZ @  17.3.2013,  23:02 Найти цитируемый пост)
Что вы скажете, посмотрев на такой код (из темы http://forum.vingrad.ru/forum/topic-361684...0%BD%D1%8B.html )? Много ли понятно с первого взгляда?

Так а это все вручную набиралось? Или мастер сгенерил?

Автор: СВК 18.3.2013, 14:06
Цитата
Новые технологии облегчают программисту жизнь ???
Серебрянных пуль, как ты знаешь, не бывает. За повышенную гибкость и мощность надо платить.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)