Форум программистов, компьютерный форум, киберфорум
Священные войны
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.63/546: Рейтинг темы: голосов - 546, средняя оценка - 4.63
610 / 93 / 4
Регистрация: 08.07.2010
Сообщений: 1,893
14.09.2010, 20:34
Студворк — интернет-сервис помощи студентам
Универсальный - Java.
Лучший - C++.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.09.2010, 20:34
Ответы с готовыми решениями:

Какой язык программирования лучше? (3)
Продолжение темы

Какой язык программирования лучше? (2)
Продолжение темы. Начало

Какой язык программирования лучше для создания игры???
Какой язык программирования лучше для создания игры, С++ или С#???

991
 Аватар для HIMen
4340 / 1509 / 101
Регистрация: 12.04.2009
Сообщений: 2,342
14.09.2010, 21:01
Цитата Сообщение от Kidalvь Посмотреть сообщение
По скорости нет равных C и Assembler (но такой скорости нам не надо).
Про машинно-зависимую оптимизацию слышал?
Цитата Сообщение от Kidalvь Посмотреть сообщение
Для веб-программирования - Linux/FreeBSD+PHP+Apache+Oracle/PostgreSQL/MySQL.
Ну да. Скриптовый интерпретируемый язык угонится за компилируемым.
А в MySQL вообще до 2004 года даже не было параметризованных запросов
0
 Аватар для Vladiator
1574 / 645 / 79
Регистрация: 24.02.2009
Сообщений: 9,268
14.09.2010, 21:25
Цитата Сообщение от HIMen Посмотреть сообщение
Скриптовый интерпретируемый язык угонится за компилируемым
если бы asp.net была нормальной, не использующей никаких дотнетов/монов и на нормальные, быстро и хорошо работающие системы - может быть.
Цитата Сообщение от HIMen Посмотреть сообщение
А в MySQL вообще до 2004 года даже не было параметризованных запросов
asp.net до какого-то года вообще не было.
0
14.09.2010, 21:36

Не по теме:

Цитата Сообщение от Kidalvь Посмотреть сообщение
и на нормальные, быстро и хорошо работающие системы
HIMen, и что ему с нами, то "ненормальными" спорить ;)

0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21285 / 8310 / 637
Регистрация: 30.03.2009
Сообщений: 22,671
Записей в блоге: 30
15.09.2010, 11:37
Цитата Сообщение от HIMen Посмотреть сообщение
Я под универсальностью подразумеваю не программирование микроконтроллеров, а то, что язык, его возможности и технологии могут применяться для решения обширного круга задач, и тут .NET-у нет равных
Приведи пример того, что из "обширного круга задач" решается на C# (напомню, речь идёт о языках), но не решается или плохо решается на Си\Си++\Дельфи/Бэйсике
0
CEO
Эксперт С++
 Аватар для Alligieri
2258 / 1248 / 57
Регистрация: 16.03.2009
Сообщений: 3,588
15.09.2010, 13:11
Evg, написание сайтов и программ клиентской стороны в браузерах (аля Flash, Silverlight)
0
 Аватар для Vladiator
1574 / 645 / 79
Регистрация: 24.02.2009
Сообщений: 9,268
15.09.2010, 13:14
Alligieri, для каждой цели должен быть свой язык. Flash куда лучше, чем silverlight. PHP лучше, чем asp.net
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21285 / 8310 / 637
Регистрация: 30.03.2009
Сообщений: 22,671
Записей в блоге: 30
15.09.2010, 13:29
Цитата Сообщение от Alligieri Посмотреть сообщение
Evg, написание сайтов и программ клиентской стороны в браузерах (аля Flash, Silverlight)
Такие программы по определению требуют специализированного языка, а не универсального. К тому же это вовсе не свойство языка, а свойство браузера: он поддерживает интерпретируемые программы-байткоды на flash или java, но не поддерживаtn программы в native-кодах. Потому что native-код работает только на одной архитектуре

Немного отвлечённый вопрос. Я по этой части не специалист, но неужто подобные applet'ы (или как это правильно называется) пишутся на C#? Что-то мне не верится

Добавлено через 4 минуты
Цитата Сообщение от HIMen Посмотреть сообщение
Ну да. Скриптовый интерпретируемый язык угонится за компилируемым.
Кстати говоря, это нормальное явление. Потому что скриптовые языки, как праило, обладают таким свойством, что коротенькая программа на скриптовом языке выражается в то, что реально код исполняется на интерпретаторе. Т.е. если бы мы написали аналогичный код на Си, то исполнялось бы то же самое, что уже зашито в интерпретатор. А потому многие интерпретируемые программы работают на проценты (может быть десятки процентов) долшье, чем компилируемые, но это не в разы и не на порядки дольше

Цитата Сообщение от HIMen Посмотреть сообщение
А в MySQL вообще до 2004 года даже не было параметризованных запросов
SQL это вообще не язык программирования, так что в данной теме можного его не обсуждать
0
CEO
Эксперт С++
 Аватар для Alligieri
2258 / 1248 / 57
Регистрация: 16.03.2009
Сообщений: 3,588
15.09.2010, 13:34
Evg, вот и надо сначала осведомится про предмет спора - а уже потом говорить.
На C# пишутся:
- Приложения консоли Win32
- Приложения Windows Forms
- Приложения WPF
- Службы Windows, службы WCF, проэкты WF
- Приложения платформы Azure
- Приложения Silverlight
- Код серверной стороны и inline-script ASP.NET (MVC)
- Код приложений Light Switch
- Приложения платформы Mono
и многое другое о чем я пока не знаю или забыл (думаю HIMen список может дополнить ввиду большего опыта )
Kidalvь, обоснуйте

Добавлено через 2 минуты
Цитата Сообщение от Evg Посмотреть сообщение
но не решается или плохо решается на Си\Си++\Дельфи/Бэйсике
кстати Evg, напомните мне диалект Бэйсика который более развит чем Visual Basic (.NET)?
0
 Аватар для Vladiator
1574 / 645 / 79
Регистрация: 24.02.2009
Сообщений: 9,268
15.09.2010, 13:40
Цитата Сообщение от Alligieri Посмотреть сообщение
Kidalvь, обоснуйте
чем SL лучше Flash? Для Флеш нужен небольшой плагин. Для SL, скорее всего, нужен огромный .net.
PHP - более кроссплатформенный. Mono - тоже что-то огромное и ненужное. Если нужна скорость - пишите на C++ с помощью CGI, это гораздо быстрее.
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
15.09.2010, 13:55
Alligieri, ты приводишь неправильные примеры. Примеры должны приводиться по цели, а не по средствам достижения. То есть, привести пример цели, которая достижима через C#, но недостижима через с с++ и т. д.. Цель должна быть не такой, как "написать windows forms" приложение, а как для конечного пользователя, что он должен иметь в итоге.
Цитата Сообщение от Alligieri Посмотреть сообщение
- Приложения Windows Forms
В этом примере цель - это GUI. GUI также просто пишется на С С++, но через winapi. Поэтому она отпадает.
И в общем-то большинство остальных примеров попадает под средство, а не под цель.
0
 Аватар для HIMen
4340 / 1509 / 101
Регистрация: 12.04.2009
Сообщений: 2,342
15.09.2010, 13:57
Цитата Сообщение от Kidalvь Посмотреть сообщение
Для Флеш нужен небольшой плагин
Для SL ну на 1 мб больше.
Цитата Сообщение от Kidalvь Посмотреть сообщение
Если нужна скорость - пишите на C++ с помощью CGI
Я уже сравнивал быстродействие с++ с c# и с# ни чуть не отстает. Или приведи пример, который на c# будет дольше работать
Цитата Сообщение от Evg Посмотреть сообщение
Кстати говоря, это нормальное явление. Потому что скриптовые языки, как праило, обладают таким свойством, что коротенькая программа на скриптовом языке выражается в то, что реально код исполняется на интерпретаторе. Т.е. если бы мы написали аналогичный код на Си, то исполнялось бы то же самое, что уже зашито в интерпретатор.
Ну библиотечный функции понятно работают нормально, но в целом это все же интерпретатор
0
 Аватар для HIMen
4340 / 1509 / 101
Регистрация: 12.04.2009
Сообщений: 2,342
15.09.2010, 14:02
Цитата Сообщение от Vourhey Посмотреть сообщение
GUI также просто пишется на С С++, но через winapi. Поэтому она отпадает.
Вот элементарный пример на WPF
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Input;
using System.Windows.Media.Imaging;
using System.Xml.Linq;
namespace Gallery
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            this.InitializeComponent();
            x = XDocument.Load("tags.xml").Root.Elements("pic");
            all = new string[1] { "all" };
            listBoxPreview.ItemsSource = x;
        }
        IEnumerable<XElement> x;
        IEnumerable<string> all;
        private void ScrollViewer_MouseMove(object sender, MouseEventArgs e)
        {
            var sw = sender as ScrollViewer;
            sw.ScrollToHorizontalOffset(e.GetPosition(sw).X * sw.ScrollableWidth / sw.ActualWidth);
        }
        private void listBoxPreview_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            var selected = listBoxPreview.SelectedItem as XElement;
            image.Source = new BitmapImage(new Uri(@"pack://siteoforigin:,,,/" + selected.Attribute("source").Value));
            listBoxTags.ItemsSource = all.Concat(selected.Elements("tag").Select(n => n.Value));
        }
        private void listBoxTags_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            var selected = listBoxTags.SelectedItem as string;
            if (selected == "all") listBoxPreview.ItemsSource = x;
            else listBoxPreview.ItemsSource = x.Where(n => n.Elements("tag").Select(p => p.Value).Contains(selected));
        }
    }
 
    [ValueConversion(typeof(string), typeof(string))]
    public class PathConverter : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            string s = @"pack://siteoforigin:,,,/" + (string)value;
            return s;
        }
        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
        {
            throw new NotImplementedException();
        }
    }
}
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
<Window 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:local="clr-namespace:Gallery"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    mc:Ignorable="d"
    x:Class="Gallery.MainWindow"
    x:Name="Window"
    Title="Фото галерея WPF"
    UseLayoutRounding="True"
    Width="640" Height="480" Background="Black">
    <Window.Resources>
        <local:PathConverter x:Key="PathConverter"/>
        <ItemsPanelTemplate x:Key="ItemsPanelTemplate1">
            <VirtualizingStackPanel IsItemsHost="True" Orientation="Horizontal"/>
        </ItemsPanelTemplate>
        <DataTemplate x:Key="DataTemplate1">
            <Image Width="100" Source="{Binding Attribute[preview].Value, Converter={StaticResource PathConverter}}"/>
        </DataTemplate>
        <Style x:Key="ListBoxItemStyle1" TargetType="{x:Type ListBoxItem}">
            <Setter Property="Background" Value="Transparent"/>
            <Setter Property="HorizontalContentAlignment" Value="{Binding HorizontalContentAlignment, RelativeSource={RelativeSource AncestorType={x:Type ItemsControl}}}"/>
            <Setter Property="VerticalContentAlignment" Value="{Binding VerticalContentAlignment, RelativeSource={RelativeSource AncestorType={x:Type ItemsControl}}}"/>
            <Setter Property="Padding" Value="2,0,0,0"/>
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="{x:Type ListBoxItem}">
                        <Border x:Name="Bd" Padding="3" SnapsToDevicePixels="true" Margin="2" CornerRadius="5" Background="#FF454545">
                            <ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
                        </Border>
                        <ControlTemplate.Triggers>
                            <Trigger Property="IsSelected" Value="true">
                                <Setter Property="Background" TargetName="Bd" Value="#FF212121"/>
                            </Trigger>
                        </ControlTemplate.Triggers>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
        <Style x:Key="ListBoxStyle1" TargetType="{x:Type ListBox}">
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="{x:Type ListBox}">
                        <ScrollViewer Focusable="false" Padding="{TemplateBinding Padding}" Margin="0,0,4,4" ScrollViewer.HorizontalScrollBarVisibility="Hidden" MouseMove="ScrollViewer_MouseMove" >
                            <ScrollViewer.OpacityMask>
                                <LinearGradientBrush EndPoint="1,0.5" StartPoint="0,0.5">
                                    <GradientStop Color="Black" Offset="0.5"/>
                                    <GradientStop Offset="1" Color="#00000000"/>
                                    <GradientStop Color="#00000000"/>
                                </LinearGradientBrush>
                            </ScrollViewer.OpacityMask>
                            <ItemsPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" Margin="25,0"/>
                        </ScrollViewer>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
        <DataTemplate x:Key="DataTemplate2">
            <TextBlock TextWrapping="Wrap" Text="{Binding Mode=OneWay}"/>
        </DataTemplate>
        <Style x:Key="ListBoxItemStyle2" TargetType="{x:Type ListBoxItem}">
            <Setter Property="Background" Value="Transparent"/>
            <Setter Property="HorizontalContentAlignment" Value="{Binding HorizontalContentAlignment, RelativeSource={RelativeSource AncestorType={x:Type ItemsControl}}}"/>
            <Setter Property="VerticalContentAlignment" Value="{Binding VerticalContentAlignment, RelativeSource={RelativeSource AncestorType={x:Type ItemsControl}}}"/>
            <Setter Property="Padding" Value="2,0,0,0"/>
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="{x:Type ListBoxItem}">
                        <ContentPresenter x:Name="contentPresenter" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" Margin="0,0,15,0"/>
                        <ControlTemplate.Triggers>
                            <Trigger Property="IsSelected" Value="true">
                                <Setter Property="Foreground" Value="#FF212121"/>
                            </Trigger>
                        </ControlTemplate.Triggers>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
        <SolidColorBrush x:Key="ListBorder" Color="#828790"/>
        <Style x:Key="ListBoxStyle2" TargetType="{x:Type ListBox}">
            <Setter Property="Background" Value="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"/>
            <Setter Property="BorderBrush" Value="{StaticResource ListBorder}"/>
            <Setter Property="BorderThickness" Value="1"/>
            <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/>
            <Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Auto"/>
            <Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Auto"/>
            <Setter Property="ScrollViewer.CanContentScroll" Value="true"/>
            <Setter Property="ScrollViewer.PanningMode" Value="Both"/>
            <Setter Property="Stylus.IsFlicksEnabled" Value="False"/>
            <Setter Property="VerticalContentAlignment" Value="Center"/>
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="{x:Type ListBox}">
                        <ScrollViewer Focusable="false" Padding="{TemplateBinding Padding}" Margin="0" HorizontalScrollBarVisibility="Hidden" VerticalScrollBarVisibility="Hidden">
                            <ItemsPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
                        </ScrollViewer>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    </Window.Resources>
    <Grid x:Name="LayoutRoot">
        <ListBox x:Name="listBoxPreview" Margin="8,0,8,8" ItemsPanel="{DynamicResource ItemsPanelTemplate1}" ItemTemplate="{DynamicResource DataTemplate1}" ItemContainerStyle="{DynamicResource ListBoxItemStyle1}" Style="{DynamicResource ListBoxStyle1}" ScrollViewer.CanContentScroll="False" Height="76" VerticalAlignment="Bottom" SelectionChanged="listBoxPreview_SelectionChanged" HorizontalAlignment="Center" />
        <ListBox x:Name="listBoxTags" Margin="8,0,0,86" Height="23" VerticalAlignment="Bottom" ItemsPanel="{DynamicResource ItemsPanelTemplate1}" ItemTemplate="{DynamicResource DataTemplate2}" ItemContainerStyle="{DynamicResource ListBoxItemStyle2}" Style="{DynamicResource ListBoxStyle2}" Foreground="#FF454545" HorizontalAlignment="Left" SelectionChanged="listBoxTags_SelectionChanged"/>
        <Image x:Name="image" Margin="8,8,8,113"/>
    </Grid>
</Window>
Интересно, сколько тысяч строк это займет на winapi
Для запуска нужен framework
Вложения
Тип файла: rar Gallery.rar (9.83 Мб, 60 просмотров)
0
 Аватар для HIMen
4340 / 1509 / 101
Регистрация: 12.04.2009
Сообщений: 2,342
15.09.2010, 14:06
Интерфейс (XAML код) создан полностью в дизайнере, сам ни одного символа не напечатал.
Ручная работа - три метода класса по три строчки и небольшой конвертер
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
15.09.2010, 14:07
Цитата Сообщение от HIMen Посмотреть сообщение
Интересно, сколько тысяч строк это займет на winapi
Какая разница, сколько тысяч строк. Это не невыполнимая задача, а вполне тривиальная. Значит, в данном случае, она выполнима и для С++ и для C#. А вот напиши драйвер для звуковой карты или мыши на C#. Вот пример типовой невыполнимой задачи.

Добавлено через 15 секунд
Цитата Сообщение от HIMen Посмотреть сообщение
Интерфейс (XAML код) создан полностью в дизайнере, сам ни одного символа не напечатал.
Ручная работа - три метода класса по три строчки и небольшой конвертер
И чО? Повторяю еще раз, что цели WPF и Windows Forms также реализуются на winapi. То, сколько это занимает времени другой вопрос. И то он зависит от знаний win32.
0
 Аватар для HIMen
4340 / 1509 / 101
Регистрация: 12.04.2009
Сообщений: 2,342
15.09.2010, 14:09
Цитата Сообщение от Vourhey Посмотреть сообщение
Это не невыполнимая задача, а вполне тривиальная.
Ага, попросит заказчик такую программу, c++ - программист скажет, будет через неделю, .net - программист скажет - будет через час. Как думаешь кто в деле?
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
15.09.2010, 14:12
Цитата Сообщение от HIMen Посмотреть сообщение
Ага, попросит заказчик такую программу, c++ - программист скажет, будет через неделю, .net - программист скажет - будет через час. Как думаешь кто в деле?
Это не касается текущей темы универсальности языков никаким боком. Хочешь поспорить про скорость написания и заказчиков - создай тему, поспорим.
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21285 / 8310 / 637
Регистрация: 30.03.2009
Сообщений: 22,671
Записей в блоге: 30
15.09.2010, 14:17
Цитата Сообщение от Alligieri Посмотреть сообщение
Evg, вот и надо сначала осведомится про предмет спора - а уже потом говорить.
В посте #5 я поставил открытым текстом вопрос, а что же подразумевается под универсальностью. Правда ответа так и не получил

Цитата Сообщение от Alligieri Посмотреть сообщение
На C# пишутся:
- Приложения консоли Win32
- Приложения Windows Forms
- Приложения WPF
- Службы Windows, службы WCF, проэкты WF
- Приложения платформы Azure
- Приложения Silverlight
- Код серверной стороны и inline-script ASP.NET (MVC)
- Код приложений Light Switch
- Приложения платформы Mono
И что из этого нельзя написать на прочих языках программирования?

Цитата Сообщение от Alligieri Посмотреть сообщение
кстати Evg, напомните мне диалект Бэйсика который более развит чем Visual Basic (.NET)?
Я не владею ни бейсиком ни паскалём, чтобы отвечать на такие узкоспециализированные вопросы. И речь ведь идёт не о том, что развито больше, а что меньше, а о том, какой язык является универсальным, а какой - нет

Что касается понятия универсальности. Разные люди могут вкладывать в это понятие разные смыслы в зависимости от контекста. Я считаю, что понятие универсальности к языку как таковому применять нельзя. Нужно учитывать ещё и реализации языка (т.е. существующие компиляторы\интерпретаторы).

Если смотреть на проблему с точки зрения захвата мирового господства, то я сразу же отметаю всё, кроме Си и Си++, потому как реализации остальных языков не являются многоплатформенными. Но, поскольку 90% программистов и ползователей на сегодняшний день кроме intel'овской платформы ничего не интересует, я согласен ограничить вопрос рамками intel'а.

Язык C# ориентирован исключительно на прикладные приложения, поскольку подразумевается, что код будетработать в окружении FrameWork'а. Т.е. код фактически интерпретируемый. Таким образом из области применения данного языка сразу же исключается системный низкоуровневый софт. То же самое касается паскаля и бэйсика, поскольку языки являются высокоуровневыми. Хоть они и подразумевают генерацию native-кода, но конструкции языка зачастую требуют библиотечную поддержку, а отсутсвие нормальной поддержки работы с указателями очень сильно усложняет работу при написании низкоуровневого кода. При желании "из принципа" написать можно, но нецелесообразно. Частично эти ограничения касаются и Си++. Таким образом при написании системного софта целесообразно использовать Си и Си++ в ограниченном объёме. Ассемблер я сюда не включаю, поскольку он языком программирования не является

Если взять системный софт класса "утилиты", то, например, для утилит, обрабатывающих конфигурационные файлы, более оправданным является использование специализированных интерпретируемых языков типа bash/perl. Всё это, безусловно, можно написать и на си и на паскале, но для узкоспециализированной программы лучше подойдёт специализированный язык. Насколько я знаю, в C# есть встроенные средства, пригодные для данной задачи (по сути дела это библиотечная поддержка, но она присутсвует всегда, а потому условно можно считать это свойством языка). Так что C# для данного класса задач можно ставить рядом с bash/perl. При использовании Си/Си++ можно использовать воспомогательные библиотеки, но это означает разведение гемороя на ровном месте, потому как выражается в необходимость что-то скачивать и устанавливать.

Для gui'ёвых пользовательских приложений, где основная часть ложится именно на реализацию пользовательского интерфейса, а не функциональности, удобнее использовать C#. И не потому, что язык чем-то хорош, а потому, что микрософтеры постарались сделать хорошую среду разработки, где на написание приложения уйдёт меньше времени, чем на borland'е и mfc.

Я это всё писал к тому, что выяснение наиболее универсального языка - это довольно бесполезное занятие. К тому же зависящее от того, под каким углом зрения смотреть на этот вопрос

Добавлено через 1 минуту
Цитата Сообщение от HIMen Посмотреть сообщение
Ну библиотечный функции понятно работают нормально, но в целом это все же интерпретатор
Интерпретатор - это некий конвертор. На вход подаётся программа, а на выходе имеем множество вызовов библиотечных функций.

Добавлено через 3 минуты
Цитата Сообщение от HIMen Посмотреть сообщение
Интересно, сколько тысяч строк это займет на winapi
Чтобы не работать непосредственно на winapi, люди делают надстройки в виде библиотечных классов для работы с компонентами (у borland'а это VCL, у микрософта MFC). И если что-то на C# получается удобнее, то это не столько заслуга языка, сколько недочёт тех, кто реализовывает библиотечную поддержку для Си и Си++ (потому что borland не поспевает за микрософтом, а микрософт банально выпячиваем .net вперед mfc)
0
PB
Просто прогер
1292 / 1079 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
15.09.2010, 14:39
Цитата Сообщение от HIMen Посмотреть сообщение
Для запуска нужен framework
Ага 4-той версии, которого у меня нет!
Неужели нельзя было использовать, скажем .NET 2?

Цитата Сообщение от Alligieri Посмотреть сообщение
напомните мне диалект Бэйсика который более развит чем Visual Basic (.NET)?
Скажем PureBasic активно развивается.
Компиляторы этого языка есть для платформ:
Windows x86
Windows x64
Linux x86
Linux x64
MacOS X Intel
MacOS X PowerPC
AmigaOS

Для работы прог, созданых с помощью этого компилятиора, не нужен .NET или runtime.
Все библиотеки статически линкуются в исполняемый файл.
0
Заблокирован
15.09.2010, 15:15
Цитата Сообщение от Vourhey Посмотреть сообщение
В этом примере цель - это GUI. GUI также просто пишется на С С++, но через winapi. Поэтому она отпадает.
Разница между C# и С++ в том, что на C++ гуй писать неудобно, ибо язык изначально под это не затачивался. Вон есть хорошая библиотека для этого дела - Qt, но ввиду того, что C++ для гуя не удобен, разработчики напридумывали всяких своих фич типа слотов и пр. В C# же все удобства искаропки.

Цитата Сообщение от Vourhey Посмотреть сообщение
Какая разница, сколько тысяч строк. Это не невыполнимая задача, а вполне тривиальная. Значит, в данном случае, она выполнима и для С++ и для C#. А вот напиши драйвер для звуковой карты или мыши на C#. Вот пример типовой невыполнимой задачи.
Ну вообще-то нет ничего невозможного. Драйвер это не такая сложная штука, как её малюют. А ты, полагаю, такой пример привёл, ибо написание драйвера для тебя - что-то такое запредельное. Погугли на тему "C# драйвер" и "C# операционная система", и ещё "Microsoft Singularity" - найдёшь для себя много интересного.

Цитата Сообщение от Vourhey Посмотреть сообщение
И чО? Повторяю еще раз, что цели WPF и Windows Forms также реализуются на winapi. То, сколько это занимает времени другой вопрос. И то он зависит от знаний win32.
При одинаковых скиллах программистов, программист на WPF реализует продвинутый GUI на порядок быстрее программиста на WinAPI, при том программист на WPF отдаст собсна дизайн на доработку дизайнеру (XAML), а сам займётся лишь логикой, в WinAPI же такой финт ушами не выйдет.

Цитата Сообщение от Vourhey Посмотреть сообщение
Это не касается текущей темы универсальности языков никаким боком. Хочешь поспорить про скорость написания и заказчиков - создай тему, поспорим.
Ну так можно всё довести до абсурда. На ассемблере ведь тоже можно GUI разрабатывать. Но глупо и никто этого не делает.

Цитата Сообщение от Evg Посмотреть сообщение
Язык C# ориентирован исключительно на прикладные приложения, поскольку подразумевается, что код будетработать в окружении FrameWork'а. Т.е. код фактически интерпретируемый. Таким образом из области применения данного языка сразу же исключается системный низкоуровневый софт.
Это называется "не читал, но осуждаю". C# не интерпретируемый, а компилируемый язык. Сначала он компилируется программистом в инструкции MSIL, а на целевой машине пользователя уже компилируется в машинные инструкции, заточенные под данную машину, причём обычно это делается на лету, но можно сделать и заранее с помощью ngen'а.

Цитата Сообщение от PB Посмотреть сообщение
Ага 4-той версии, которого у меня нет!
Неужели нельзя было использовать, скажем .NET 2?
Нельзя. По той же самой причине, почему нельзя использовать Windows 95. Если тебе религия не позволяет пользоваться свежим софтом и ставить апдейты - ты сам себе злая буратина.

Цитата Сообщение от PB Посмотреть сообщение
Для работы прог, созданых с помощью этого компилятиора, не нужен .NET или runtime.
Все библиотеки статически линкуются в исполняемый файл.
Всё, чем ты пользуешься нуждается в поддержке. Просто некоторые программы требуют .NET Framework, некоторые VC++ Redist, а некоторым хватает статически скомпилированных библиотек и WinAPI. Но какбэ учитывая, что с интернетами нынче проблем у продвинутого человечества нет, то и проблемы скачать один раз фреймворк весом пол сотни метров тоже нет. Никто почему-то не ругается на то, что DirectX много весит... а с дотНетом все слюной брызжут.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.09.2010, 15:15

Какой язык программирования мне ст0ит учить?
... оканчивю мат. школу, и хочу поступить на программиста. Программирую (неплохо) на Паскале. Что мне нужно? Може С++? Или...?

Какой язык лучше / прибыльнее?
И так, мне 16 лет, седня днем пойду подавать документы в техникум на программиста соответственно. И назрел вопрос какой язык...

Какой язык веб-программирования выбрать? Плюсы\минусы
Вопрос что ни на есть из раздела священных, но все же... Какой язык веб-программирования кто предпочитает? У кого какие плюсы и...

Какой язык лучше изучать C или C++
Всем здравствуйте! Я новичок в программировании(знаю только Паскаль). Сейчас выбираю, какой язык учить: С или С++. Подскажите, пожалуйста,...

Какой язык лучше изучать с нуля?
Привет Всем!! Ребята подскажите пожалуйста какой язык лучше изучать с нуля ????? За ответ заранее спасибо!!!


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Закрытая тема Создать тему
Новые блоги и статьи
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru